java以伪 'fixed'速率安排可调用(例如钟形曲线分布)

标签 java scheduled-tasks threadpool callable

目前我有一个 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

关于java以伪 'fixed'速率安排可调用(例如钟形曲线分布),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30707556/

相关文章:

java - 如何在 GWT NumberFormat 中将 SPACE 指定为千位分隔符

c# - 停止所有计划任务

java - 安排任务每天运行 3 次,每次 X 分钟,如果

java - ExecutorService 对单个线程的时间限制

java - 如何使用 hibernate 基于位掩码值获取记录?

java - 将文件从 Maven 程序集中的 Maven 依赖项中拉出

java - 访问不同 Java 类中的文件?

Java cron4j 计划文件

c# - .NET 中是否可以对 Threadpool 中的任务进行优先级排序?

java - 关于守护线程为非守护线程提供一些服务