2012-12-17 97 views
1

我对linux命令行和shell脚本相当陌生,因此请和我一起袒护。防止cronjobs重叠

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

问题是,有时一个作业需要很长时间才能运行,另一个作业在第一个作业完成之前就开始了,从而引发问题。

是否有某种方法排队或假脱机这些作业,以便在当前正在运行的作业完成之前不会启动?我尝试使用this solution,但这并不能保证待处理的作业将按照它们应该开始的顺序继续。队列将是最好的,但我找不到有关如何做到这一点的任何事情。

请帮忙!

回答

0

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

我建议使用高级语言(如java)编写/编写需求,并使用多线程程序来实现您所需要的功能。

Control-m是另一种调度软件,具有很多其他功能。你将能够将上面的用例集成到它中。