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