1

我在 crontab 中设置了 3 个不同的作业(称它们为 jobA、jobB、jobC),它们以不同的时间间隔运行并在一天中的不同时间开始。例如,jobA 在每小时 5 分钟运行一次,jobB 在每小时 9 和 39 分钟运行一次,jobB 每 30 分钟运行一次,jobC 每 15 分钟运行一次。它们不相互依赖,但由于各种原因,它们不能同时运行。

问题是有时其中一个作业需要很长时间才能运行,而另一个作业在第一个作业完成之前就开始了,这会导致问题。

是否有某种方法可以对这些作业进行排队或假脱机,以便在当前运行的作业完成之前不会启动?我尝试使用此解决方案,但这并不能保证挂起的作业将按照它们应该开始的相同顺序恢复。最好有一个队列,但我找不到任何关于如何做到这一点的信息。

4

1 回答 1

1

您不能使用cron. Cron 用于在特定时间运行特定命令。您可以通过您提出的解决方案来做到这一点,但这会增加更多的复杂性。

我建议,用高级语言编写/编码要求,java并使用多线程程序来实现你所需要的。

Control-m是另一个调度软件,还有很多其他的功能。您将能够将上述用例集成到其中。

于 2012-12-17T11:58:05.867 回答