ScheduledTaskRegistrar执行多个任务
时间: 2023-12-02 22:03:18 浏览: 45
是的,ScheduledTaskRegistrar可以用来执行多个定时任务。您可以使用addTriggerTask方法将多个任务添加到ScheduledTaskRegistrar中,并设置不同的触发时间和触发器。例如:
```
@Configuration
@EnableScheduling
public class SchedulingConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(
() -> task1(),
triggerContext -> {
CronTrigger cronTrigger = new CronTrigger("0 0/5 * * * ?");
return cronTrigger.nextExecutionTime(triggerContext);
}
);
taskRegistrar.addTriggerTask(
() -> task2(),
triggerContext -> {
CronTrigger cronTrigger = new CronTrigger("0 0/10 * * * ?");
return cronTrigger.nextExecutionTime(triggerContext);
}
);
}
private void task1() {
// 执行任务1
}
private void task2() {
// 执行任务2
}
}
```
在这个配置类中,我们使用ScheduledTaskRegistrar来执行两个任务task1和task2。我们使用addTriggerTask方法将这两个任务添加到ScheduledTaskRegistrar中,并分别设置它们的触发时间和触发器。在这个例子中,我们使用CronTrigger来设置任务的触发时间。任务1将在每5分钟执行一次,任务2将在每10分钟执行一次。
当应用程序启动时,ScheduledTaskRegistrar将自动启动这两个任务,并按照它们的触发时间执行它们。如果您希望停止执行任务,可以调用ScheduledTaskRegistrar的destroy方法。
阅读全文