我正在尝试在@ Thread.sleep (FixedDelay)块中执行调度,但到目前为止还没有成功。据我所知,Thread.sleep不能在@Scheduled下工作。我可以想到一个while循环,但我对这种方法不是很有信心。你们还有其他的建议吗?
我在这个调度程序下运行多个任务,并且我需要在其中一些任务之间放置一些延迟。不存在将这些任务拆分到多个调度器中的问题。所有的事情都必须在同一个平台下完成。
谢谢
发布于 2020-09-24 22:41:29
您可以创建原子标志,它将通知线程是否应该休眠。
private static final AtomicBoolean sleep = new AtomicBoolean(false);
@Scheduled(...)
public void schedule() {
sleep.set(true);
}
public void process() {
new Thread(() -> {
while (true) {
if (sleep.get()) {
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
sleep.set(false);
}
doSmth();
}
}).start();
}https://stackoverflow.com/questions/64048648
复制相似问题