我需要使用预定的注解。我在字符串列表中有几个休息,我想每6分钟一个接一个地检查。
第一个rest应该启动,6分钟后第二个应该执行。
如何在Scheduled方法内部实现这种循环?
此外,我不能在方法原因错误(Only no-arg methods may be annotated with @Scheduled)中放入任何参数。有什么办法可以做到吗?
发布于 2018-04-11 20:49:07
一种方法是使用SchedulingConfigurer类而不是@Scheduled,并动态计算下一次执行时间。
下面是一个示例代码。
@EnableScheduling
class SomeClass implements SchedulingConfigurer{
// Autowire and initialize the beans you need to execute your task.
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(new Runnable() {
@Override
public void run() {
// Execute your task
}
}, new Trigger() {
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {
String cron = createCron(); // Create cron expression for next execution
CronTrigger trigger = new CronTrigger(cron);
return trigger.nextExecutionTime(triggerContext);
}
});
}
private String createCron() {
// return cron expression for next trigger
}
}这使用了spring上下文中可用的默认调度器
https://stackoverflow.com/questions/49775315
复制相似问题