让 cron 等待作业完成后再重新启动
我有一个每隔一分钟执行一次的 cronjob,通常在几秒钟内运行,但有时会持续几分钟。
如果下一分钟到来时命令已经在运行,我需要 cron 不执行该命令。
该线看起来像这样 */1 * * * * cmd
我已经尝试过这个 * * * * * ID=job1 FREQ=1m AFTER=job1 cmd
但没有成功。
是否可以用 cron 解决或者我必须实施锁定?
I have a cronjob that executes every second minute that usually runs in seconds, but sometimes for several minutes.
I need cron to not execute the command if it's already running when the next minute comes.
The line looks like this
*/1 * * * * cmd
I have tried with this
* * * * * ID=job1 FREQ=1m AFTER=job1 cmd
but to no success.
Is it possible to solve with cron or do I have to implement locking?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以创建一个名为 inProgress (或其他)的临时文件,并将其存储在标准位置,并使用它与下一个作业进行通信(如果它应该运行或不运行)。
如果工作流程是这样的怎么办:
文件
You can make a temp file called inProgress (or whatever) and store it in a standard place, and use this to communicate to the next job if it should run or not.
What if flow of the job goes like this:
file