剂量 新的运行玉米作业可能会影响 PHP 脚本的最后一次运行


dose new running corn job can effect on last running for a php script?

我有一个 php 脚本,处理时间在 5-15 分钟之间。

我想每 5 分钟用玉米作业运行一次这个脚本。

我也运气在过程中的 php 脚本....例如,如果脚本执行一个过程玉米作业,则无法再次运行该脚本(返回 false)!

现在这是我的问题:

例如,玉米作业在 0min and 5th min 10th min 15th min 20th 分钟内运行...

我的脚本在第一次玉米作业运行时以8th min完成。

如果玉米作业在第 5 分钟内运行,则剂量 PHP 股票中断?

是的,我在处理过程中很幸运...但我认为如果玉米作业在第 5 分钟运行,连接将被重置并且脚本中断。我错了吗?

您需要实现某种锁定机制。

第一个启动的脚本在文件系统中创建锁定文件。所有脚本首先检查此类脚本是否已存在。如果是这样,他们会立即退出。如果没有,他们开始处理正常流程。

这里唯一关键的是确保过时的锁定文件不会阻塞处理流。这样,如果脚本在完成后没有删除它创建的锁定文件,则其他脚本可以开始处理。如果使用脚本的进程 ID 作为锁定文件的内容,则可以执行此操作。这样,每个启动脚本都可以检查创建现有锁的进程是否仍处于活动状态。

这一切都假设您通过 CLI 作为本地进程启动脚本,而不是作为本地 http 服务器执行的脚本启动。本地脚本(通常)对执行时间没有限制。