在runnable中调度

时间:2017-11-21 06:31:53

标签: java spring multithreading scheduled-tasks threadpool

我使用Spring ThreadPoolTask​​Scheduler来执行任务,我在run()方法中安排相同的任务,如下所示。通过这样做,我确保在当前任务完成后安排下一个。

public class Task implements Runnable{
    @Autowired
    ThreadPoolTaskScheduler scheduler;
    public void run() {
        //some work
        scheduler.schedule(this, new Date(System.currentTimeMillis() + delay));
    }
}

这种方法是否安全,是否会出现并发问题?

1 个答案:

答案 0 :(得分:2)

您应该使用ThreadPoolTaskScheduler.scheduleWithFixedDelay(...),而不是尝试手动配置下一次执行。它完全符合你的代码所做的,除了更好。