我有一个 php 脚本,处理时间在 5-15
分钟之间。
我想每 5 分钟用玉米作业运行一次这个脚本。
我也运气在过程中的 php 脚本....例如,如果脚本执行一个过程玉米作业,则无法再次运行该脚本(返回 false)!
现在这是我的问题:
例如,玉米作业在 0min and 5th min 10th min 15th min 20th
分钟内运行...
我的脚本在第一次玉米作业运行时以8th min
完成。
如果玉米作业在第 5 分钟内运行,则剂量 PHP 股票中断?
是的,我在处理过程中很幸运...但我认为如果玉米作业在第 5 分钟运行,连接将被重置并且脚本中断。我错了吗?
您需要实现某种锁定机制。
第一个启动的脚本在文件系统中创建锁定文件。所有脚本首先检查此类脚本是否已存在。如果是这样,他们会立即退出。如果没有,他们开始处理正常流程。
这里唯一关键的是确保过时的锁定文件不会阻塞处理流。这样,如果脚本在完成后没有删除它创建的锁定文件,则其他脚本可以开始处理。如果使用脚本的进程 ID 作为锁定文件的内容,则可以执行此操作。这样,每个启动脚本都可以检查创建现有锁的进程是否仍处于活动状态。
这一切都假设您通过 CLI 作为本地进程启动脚本,而不是作为本地 http 服务器执行的脚本启动。本地脚本(通常)对执行时间没有限制。