【发布时间】:2013-01-26 00:37:57
【问题描述】:
(对于我的问题表述不当,我提前道歉,请考虑英语不是我的第一语言)。
我有几个进程 (cron),我想“优化”启动它们的时间表。
例如,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/ 上提出了这个问题,因为我认为这对数学家来说也是一个“好”的问题。
【问题讨论】:
标签: cron