gpt4 book ai didi

java - 循环消息/任务队列现有解决方案

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:55 26 4
gpt4 key购买 nike

考虑有一组有限的任务必须在特定时间段内完成(也在该时间段内均匀分布),然后一次又一次地重复。

如果是一个本地工作线程/线程,我们只需做这样的事情(对伪代码感到抱歉):

long interval = period / tasks.size

while (true) {
for (task in tasks) {
task.do()
sleep(interval)
}
}

现在我想以分布式方式与多个独立工作人员一起执行此操作。

对于这种情况,是否有一些已知的最佳实践解决方案(最好来自 Java 世界)?循环消息队列?分布式任务锁?我用 google 安静地搜索了一下,但看不到任何开箱即用的优雅解决方案。

最佳答案

我认为对此没有单一的“最佳”方法,因为它将在灵 active 和均匀度保证强度之间进行权衡。

在灵活的一端,只需在这段时间内的某个时间将每项任务随机分配给一名 worker 。这将不需要工作人员之间的通信,因此这是可扩展和可并行的。您会期望事情应该相当均匀,尤其是当您有很多任务时。

在频谱的强均匀性端,您应该按工作人员和时间段划分任务,如@Lino 所示。这将需要您提前知道您有多少 worker 等,并且它不可并行化。

有许多介于这两个极端之间的替代方法,以及混合方法。

要缩小答案范围,您需要提供更多关于限制条件和成功标准的详细信息。

关于java - 循环消息/任务队列现有解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50853058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com