微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有cron job – PHP脚本,在5分钟内调用一次.我需要确保之前调用PHP脚本已经完成执行 – 不想混合正在处理的数据.

我曾经使用过三种方法

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

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

解决方法:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐