(我提前为我的问题的错误表达道歉,请认为英语不是我的第一语言。)
我有几个进程(crons),我想“优化”计划何时启动它们。
例如,cron c1每3分钟启动一次,cron c1每7分钟启动一次,cron c3每18分钟启动一次。假设它们在停止前仅持续几秒钟。
这里的时间单位为1分钟。
现在,我想要的是这些crons是分布式的,这样我们就不会有很多时候开始的时刻,然后是没有cron的长时间间隔。例如,如果c1和c3都在时间0开始,那么它们将每18分钟一起重新开始。最好在时间0启动cron c1,然后在时间1启动c3,这样它们就不会一起启动。
因此,给定一个具有周期性的crons列表,计划一个时间表,以便每个cron之间有尽可能多的时间,以及两个crons一起开始时尽可能少的时间。
有关于此类问题的一些众所周知的算法吗?
这个问题的实际应用是:~200 crons。其中一些是每5或10或30分钟发射一次,持续时间很短(几秒钟),有些(约20-25)每2小时发射一次,持续几分钟。因此,我们的想法也就是大cr不会同时发布。
我自己是一名数学家,而不是计算机科学家,所以我在https://math.stackexchange.com/上提出这个问题,因为我认为这对数学家来说也是一个“好”的问题。
答案 0 :(得分:0)
我认为你应该考虑每个crons使用的资源,然后安排你的工作。
我认为没有特定的算法。