Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringJava-运行进程每天执行一次任务_Java_Spring_Spring Mvc_Scheduled Tasks - Fatal编程技术网

SpringJava-运行进程每天执行一次任务

SpringJava-运行进程每天执行一次任务,java,spring,spring-mvc,scheduled-tasks,Java,Spring,Spring Mvc,Scheduled Tasks,我有一个小问题(我使用的是spring版本3.1.1)。我想启动一个进程或线程,在一天内执行一项任务 例如: 我有一个用户列表,每个用户都有一个总天数字段 类用户{ 一串 一串 DateTime countDays=…12-12-12。。。 } 所以我想做的是,当我启动应用程序(运行)时,我想每天执行一项任务: 循环浏览用户列表 查看计数天数 例如,如果countDays大于14 将某些内容发送给用户 我知道如何循环发送一些东西。我不知道如何启动一个对象,让它在一天内执行一项任务。创建一个bea

我有一个小问题(我使用的是spring版本3.1.1)。我想启动一个进程或线程,在一天内执行一项任务

例如: 我有一个用户列表,每个用户都有一个总天数字段

类用户{ 一串 一串 DateTime countDays=…12-12-12。。。 }

所以我想做的是,当我启动应用程序(运行)时,我想每天执行一项任务: 循环浏览用户列表 查看计数天数 例如,如果countDays大于14 将某些内容发送给用户

我知道如何循环发送一些东西。我不知道如何启动一个对象,让它在一天内执行一项任务。创建一个bean,构造它并使用sleep函数


希望有人能帮我,谢谢你Spring非常支持Quartz调度程序

您可以使用CRON触发器bean将任务设置为每天运行一次(例如,在午夜)

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="usersJob" />
    <property name="cronExpression" value="0 0 * * *" />
</bean>

您还可以使用@Scheduled注释,类似于:

@Scheduled(cron="0 0 * * *")
public void doStuff() {
   ..
}
检查此处的声明:。

使用Spring和接口。TaskScheduler负责调度任务(可运行对象)以执行,触发器负责确定执行时间

对于您的情况,TaskScheduler的实现应该足够了。它将java.util.concurrent.ThreadPoolExecutor改编为TaskScheduler

对于触发器的实现,最适合您的需要。它可以用来创建一个触发策略,以便每天在同一时间执行任务

示例Java代码:

Runnable task = /* your task */
TaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.schedule(task, new CronTrigger("0 0 * * *"));

哇!太快了。我想我找到了我要找的东西:TimerTask。男人。。谢谢你!!Spring还具有对cron触发器的本机支持,所以如果不需要石英,就不需要石英。Zutty提供的链接包含所有详细信息。