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