【发布时间】:2020-09-04 09:42:16
【问题描述】:
我对 SpringBoot 还很陌生,并试图使用 @Scheduled 来延迟执行某个任务。
我知道有fixedDelay 参数可以设置为在连续两次执行之间具有固定延迟。
我需要的是,是否可以在每两次执行之间设置 随机 延迟? (我的意思是每个延迟都是随机设置的,但没有将随机延迟设置为 fixedDelay)
我能想到的是,在执行过程中使用fixedDelay,加上随机秒的Thread.sleep(),但感觉应该有更正确的方法来做到这一点。
【问题讨论】:
-
这能回答你的问题吗? Spring @Scheduled annotation random delay
-
@Lorelorelore 这是一个不同的问题。它只会随机化初始延迟,而不是调用之间的延迟。
-
是的,但是看看这个答案:stackoverflow.com/a/41815962/3432678 它提到了 fixedDelayString
-
@Lorelorelore 不幸的是,从我的测试来看,这仍然会产生固定延迟而不是随机延迟,我的猜测是该表达式仅评估一次,但并非每次确定下一次延迟时都会评估。跨度>
-
嗯,是的,我猜是这样......可能你必须考虑其他方法来解决你正在尝试做的事情,而不使用预定注释
标签: java spring-boot cron