首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Spring CronTrigger立即启动

Java Spring CronTrigger立即启动
EN

Stack Overflow用户
提问于 2019-07-29 22:02:26
回答 1查看 622关注 0票数 0

我在Spring中使用CronTrigger来安排一些任务每一小时执行一次。第一次调度发生在一个小时之后。然而,我希望第一个日程安排立即发生。

代码语言:javascript
复制
@Autowired
@Qualifier("myScheduler")
private ThreadPoolTaskScheduler scheduler;

@Autowired @Lazy
private ScheduledService scheduledService; // implements Runnable

    Trigger trigger = new CronTrigger("0 0 * * * *");       
    Date date = trigger.nextExecutionTime(new SimpleTriggerContext());
    log.info("Next scheduled time for tasks - [" + date.toString() + "]");      
    scheduler.schedule(scheduledService, trigger);

如何立即触发第一次执行,而不是等待一个小时?后续触发器应以一小时为间隔工作。

EN

回答 1

Stack Overflow用户

发布于 2019-07-29 22:18:30

在启动时,您可以在不使用调度程序的情况下调用任务。在此之后,您可以将执行留给调度器。

例如:

代码语言:javascript
复制
@Scheduled(cron = "0 0 * * * *")
public void scheduleTaskUsingCronExpression() {
  // do something
}

但在同一个类中,你可以有一些在启动时运行的东西:

代码语言:javascript
复制
@EventListener(ApplicationReadyEvent.class)
public void onStartUp() {
  scheduleTaskUsingCronExpression();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57255503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档