当前位置:  开发笔记 > 编程语言 > 正文

PHP循环充当cronjob [确保只运行一个实例]

如何解决《PHP循环充当cronjob[确保只运行一个实例]》经验,为你挑选了1个好方法。

我有一个PHP脚本文件的多部分问题.我正在创建此文件,每秒更新一次数据库.没有其他建模方法,必须每秒完成.

现在我正在运行CentOS,我是新手.第一个菜鸟问题是:

我如何通过SSH运行php文件.我读到它只是#php path-to/myfile.php.但我试图回应一些东西,我没有在文中看到它.

现在我不认为启动文件会成为一个问题.我猜的一个问题是,我不知道它是否可能,但是这里有.

我是否有可能百分百确定该文件只运行一次.如果我偶然再次运行该文件会发生什么.

我进一步想知道,如果我每秒都对一个日志执行写操作,我就知道一切都运行正常.如果出现错误或出现错误,日志文件将停止.

是用fopen写入日志文件,还是写入和关闭.这不会花费很多时间,在CentOS中没有更简单的方法.

好吧我的另一个重点是当我运行文件时会发生什么.文件是在内存中运行,还是在系统中使用该文件.它是否响应文件中所做的更改,例如停止执行脚本.

我可以在文件本身中实现某种停止机制.或者是否有一个命令我可以用来停止文件.

我知道的另一个选择是实现每分钟运行一次的cronjob.而这个cronjob执行php文件.php文件将循环一分钟,更新所需的一切,然后终止.我实现了这个方法,但只使用了浏览器.我只是浏览了mu文件,然后打开它.我看到浏览器忙了一分钟,但它没有更新数据库中的任何内容.有谁知道这可能是什么原因.

我的另一个问题是通过实现cronjob方法,我填写PLESK面板的命令是什么.它与上面的命令相同.只是php和文件名.或者是否有像-f -q -something这样的特殊命令.

抱歉所有的菜鸟问题.

如果有人可以帮助我,我真的很感激.

再见!



1> cletus..:

确保只运行脚本的一个副本的最简单方法是使用flock()获取文件锁定.例如:


所以基本上你有一个虚拟文件设置,你的脚本在启动时会尝试获取一个锁.如果成功,它就会运行.如果没有,它会退出.这样,一次只能运行一个脚本副本.

注意: flock()是所谓的咨询锁定方法,这意味着只有在您使用它时才有效.因此,这将阻止您自己的脚本多次运行,但不会对任何其他脚本执行任何操作,这在您的情况下听起来不错.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有