CRON:在上一个循环仍在运行时开始新的循环?

CRON:在上一个循环仍在运行时开始新的循环?

例如,有 1 个 .py 脚本,使用 CRON 设置为每 5 分钟执行一次。如果该脚本需要超过 5 分钟才能完成,该怎么办?这会导致问题吗?.py 程序会崩溃吗?

是否有可能同时运行 2 个(相同)脚本而不会发生冲突?

答案1

cron不关心您正在运行多少个脚本(无论是否相同)。它只会在预定的时间启动任务。

因此,如果您擅长在第一个脚本运行时第二次运行该脚本,则没有任何问题。

虽然这取决于脚本,但通常除非必要,否则大多数情况下,由于同时运行同一脚本的多个实例而产生的竞争条件,它可能会造成异常结果。为了避免这种情况,有多种机制可以确保只有一个脚本实例在运行。

重点是,如果你对此感到满意,cron就不会抱怨。

答案2

它应该可以正常执行。这与在不同终端上运行相同脚本的情况完全相同。脚本在两个终端上均可运行。

如果您不希望出现这种情况,请在脚本中创建一些条件,以便它等待最后一个完成。

正如 Alex 的评论所建议的,您可以通过在 cron 作业执行的脚本中进行无限循环来轻松测试这一点。

相关内容