如何修复我的线程以将线程的初始延迟安排为2分钟,而不再进行安排。 (即,仅安排一次)
@Scheduled(fixedDelay = 5000)
public void myJob() {
Thread.sleep(12000);
}
答案 0 :(得分:1)
在这种情况下,您可以使用ScheduledExecutorService。它是一种ExecutorService,可以安排命令在给定的延迟后运行或定期执行。
ScheduledFuture时间表(可调用,可延迟,长时间单位)
创建并执行ScheduledFuture,该计划在 给定延迟。
可调用-要执行的函数
delay-从现在开始延迟执行的时间
unit-延迟的时间单位
ScheduledExecutorService service = null;
service = Executors.newScheduledThreadPool(1);
service.schedule(() -> {
myMethodNameWhichIWantToExecute();
}, 2, TimeUnit.MINUTES);
if (service != null) service.shutdown();