我在crontab中设置了3个不同的作业(称为joba、jobb、jobc),它们以不同的间隔运行,并在一天中的不同时间启动。例如,joba每小时运行一次,每小时5分钟,jobb每30分钟运行一次,每小时9分钟和39分钟,jobc每15分钟运行一次。他们并不相互依赖,但由于种种原因,他们不能同时跑步。
问题是,有时其中一个作业需要很长时间才能运行,而另一个作业则在第一个作业完成之前启动,从而导致问题。
是否有某种方法可以对这些作业进行排队或假脱机,以便在当前运行的作业完成之前不会启动这些作业?我尝试使用this solution但这不能保证挂起的作业将按照它们应该开始的顺序恢复。排队是最好的,但我找不到任何方法。
最佳答案
你不能用cron
。cron用于在特定时间运行特定命令。你可以通过你提出的解决方案来做,但这增加了更多的复杂性。
我建议,用高级语言编写/编码需求,比如java
,并使用多线程程序来实现您的需求。Control-m
是另一个调度软件,还有很多其他功能。您将能够在其中集成上述用例。