目前我有一个ScheduledThreadPoolExecutor,它可以以固定的速率执行callable。
scheduledThreadPoolExecutor.scheduleAtFixedRate(callable, delay, waitNano, TimeUnit.NANOSECONDS);
我的团队想在waitNano中添加一些randomess。目前它是1000.但我们希望等待秒数为900,1100,800,1200。平均等待时间仍然是1000,但等待秒是随机分布的(例如像贝尔曲线)。
我想知道这个功能已经在java了吗? 如果我必须编写自己的“调度程序”,这种行为具有随机等待行为,那么你们有什么建议呢?
非常感谢!
厄尔本
答案 0 :(得分:1)
在修复计划中调用另一个Runnable
(例如10分钟)并让它随机配置随机调度程序的下一次执行仍在管理随机性
例如:第一列显示执行固定调度程序,确定何时执行托管随机调度程序
0 1
5 7
10 11
15 18