加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何实现运行php脚本的单处理模式?

发布时间:2020-12-13 17:01:53 所属栏目:PHP教程 来源:网络整理
导读:我有cron job – php脚本,在5分钟内调用一次.我需要确保之前调用的php脚本已经完成执行 – 不想混合正在处理的数据. 我曾经使用过三种方法: 创建包含运行状态标志的辅助文本文件.执行的脚本分析文件的内容,如果flag设置为true则中断.这是最简单的解决方案,
我有cron job – php脚本,在5分钟内调用一次.我需要确保之前调用的php脚本已经完成执行 – 不想混合正在处理的数据.

我曾经使用过三种方法:

>创建包含运行状态标志的辅助文本文件.执行的脚本分析文件的内容,如果flag设置为true则中断.这是最简单的解决方案,但每次我创建这样的脚本时,我都觉得我再次发明了一辆自行车.是否有满足大多数需求的众所周知的模式或最佳实践?
>添加UNIX服务.这种方法对于cron工作来说是最好的.但是开发和测试UNIX服务需要花费更多时间:需要良好的bash脚本知识.
>使用数据库跟踪流程.很好的解决方案,但有时不鼓励数据库使用 – 再也不想发明自行车,希望已经有一个很好的灵活解决方案.

也许你有其他建议如何管理PHP脚本的单一处理?很高兴听到你对此的看法.

解决方法

我建议使用文件锁定机制.您创建一个文本文件,并使您的进程独占锁定它(请参阅php flock function: http://us3.php.net/flock).如果它无法锁定,则退出,因为正在运行另一个实例. 使用文件锁定的好处是,如果您的PHP脚本意外死亡或被杀死,它将自动释放锁定.如果您使用纯文本文件作为状态,则不会发生这种情况(如果脚本设置为在执行结束时更新此文件并且意外终止,则会留下不真实的数据).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读