0

(对于我的问题表述不当,我提前道歉,请考虑英语不是我的第一语言)。

我有几个进程(crons),我想“优化”启动它们的时间表。

例如,cron c1 每 3 分钟启动一次,cron c1 每 7 分钟启动一次,cron c3 每 18 分钟启动一次。假设它们在停止前只持续了几秒钟。

这里的时间单位是 1 分钟。

现在,我想要的是这些 crons 是分布式的,这样我们就没有时间让它们中的许多开始,然后是长时间没有 cron 的时间间隔。例如,如果 c1 和 c3 都在时间 0 开始,那么它们将每 18 分钟一起重新开始。最好在时间 0 启动 cron c1,然后在时间 1 启动 c3,这样它们就不会一起启动。

所以这个想法是,给定一个具有周期性的 cron 列表,计划一个时间表,以便每个 cron 之间有尽可能多的时间,并且两个 cron 一起开始的时刻尽可能少。

是否有一些关于此类问题的知名算法?

这个问题的实际应用是:~200 crons。其中一些每 5 或 ~10 或 ~30 分钟发射一次,持续时间很短(几秒),有些(~20 - 25)每 2 小时发射一次,持续几分钟。所以这个想法也是大 crons 不是同时启动的。

我自己是数学家,而不是计算机科学家,所以我在https://math.stackexchange.com/上问了这个问题,因为我认为这对数学家来说也是一个“好”的问题。

4

1 回答 1

0

我认为您应该考虑每个 crons 使用的资源,然后从中安排您的工作。

我认为没有特定的算法。

于 2013-01-25T10:25:11.170 回答