Linux 防止作业重叠

Linux 防止作业重叠,linux,cron,queue,spool,Linux,Cron,Queue,Spool,我在crontab中设置了3个不同的作业(称为jobA、jobB、jobC),它们以不同的间隔运行,并在一天中的不同时间启动。例如,jobA每小时运行一次,每小时运行5分钟,jobB每30分钟运行一次,每小时运行9分钟和39分钟,jobC每15分钟运行一次。它们并不相互依赖,但由于各种原因,它们不能同时运行 问题是,有时其中一个作业需要很长时间才能运行,而另一个作业在第一个作业完成之前就开始了,从而导致了问题 是否有某种方法可以对这些作业进行排队或假脱机,以便在当前正在运行的作业完成之前不会启动

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

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


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

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

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


Control-m
是另一种调度软件,它还具有许多其他功能。您将能够在其中集成上述用例。

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

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

Control-m
是另一种调度软件,它还具有许多其他功能。您将能够在其中集成上述用例