Spring 在春季安排多项任务

Spring 在春季安排多项任务,spring,scheduled-tasks,Spring,Scheduled Tasks,我有两个任务实现(我的)PeriodicTask,它实现Runnable。 有一个代码可以很好地工作。但我预计将来会有很多任务,希望避免在TaskScheduler中注册每个任务。 TaskScheduler是否可以找到所有类(实现PeriodictTask)并对它们进行调度。 还有一个问题是如何设置计划参数(让它们在开始时是静态的final) 您可以在不使用@计划的注释的情况下实现它: @Component public class TaskSchedulerComponent {

我有两个任务实现(我的)PeriodicTask,它实现Runnable。 有一个代码可以很好地工作。但我预计将来会有很多任务,希望避免在TaskScheduler中注册每个任务。 TaskScheduler是否可以找到所有类(实现PeriodictTask)并对它们进行调度。 还有一个问题是如何设置计划参数(让它们在开始时是静态的final)


您可以在不使用
@计划的
注释的情况下实现它:

@Component
public class TaskSchedulerComponent {

    @Autowired
    private ThreadPoolTaskScheduler taskScheduler;


    public void schedulePeriodicTask(Runnable task, long delay, long period){

        PeriodicTrigger periodicTrigger
                = new PeriodicTrigger(period, TimeUnit.MICROSECONDS);
        periodicTrigger.setFixedRate(true);
        periodicTrigger.setInitialDelay(delay);

        taskScheduler.schedule(task,periodicTrigger);
    }
}
然后在
main
方法中注册所有任务,这些任务应定期执行,并具有给定的延迟和时间段

注: 要使
@Scheduled
使用参数,可以使用属性文件中的值,如下所示:

@Scheduled(fixedDelayString = "${fixed.delay}",initialDelay = ${init.delay})

您可以在不使用
@计划的
注释的情况下实现它:

@Component
public class TaskSchedulerComponent {

    @Autowired
    private ThreadPoolTaskScheduler taskScheduler;


    public void schedulePeriodicTask(Runnable task, long delay, long period){

        PeriodicTrigger periodicTrigger
                = new PeriodicTrigger(period, TimeUnit.MICROSECONDS);
        periodicTrigger.setFixedRate(true);
        periodicTrigger.setInitialDelay(delay);

        taskScheduler.schedule(task,periodicTrigger);
    }
}
然后在
main
方法中注册所有任务,这些任务应定期执行,并具有给定的延迟和时间段

注: 要使
@Scheduled
使用参数,可以使用属性文件中的值,如下所示:

@Scheduled(fixedDelayString = "${fixed.delay}",initialDelay = ${init.delay})

它有助于解决你的问题吗?它有助于解决你的问题吗?非常感谢,这正是我所需要的。非常感谢,这正是我所需要的。