我有一个PHP脚本文件的多部分问题.我正在创建此文件,每秒更新一次数据库.没有其他建模方法,必须每秒完成.
现在我正在运行CentOS,我是新手.第一个菜鸟问题是:
我如何通过SSH运行php文件.我读到它只是#php path-to/myfile.php.但我试图回应一些东西,我没有在文中看到它.
现在我不认为启动文件会成为一个问题.我猜的一个问题是,我不知道它是否可能,但是这里有.
我是否有可能百分百确定该文件只运行一次.如果我偶然再次运行该文件会发生什么.
我进一步想知道,如果我每秒都对一个日志执行写操作,我就知道一切都运行正常.如果出现错误或出现错误,日志文件将停止.
是用fopen写入日志文件,还是写入和关闭.这不会花费很多时间,在CentOS中没有更简单的方法.
好吧我的另一个重点是当我运行文件时会发生什么.文件是在内存中运行,还是在系统中使用该文件.它是否响应文件中所做的更改,例如停止执行脚本.
我可以在文件本身中实现某种停止机制.或者是否有一个命令我可以用来停止文件.
我知道的另一个选择是实现每分钟运行一次的cronjob.而这个cronjob执行php文件.php文件将循环一分钟,更新所需的一切,然后终止.我实现了这个方法,但只使用了浏览器.我只是浏览了mu文件,然后打开它.我看到浏览器忙了一分钟,但它没有更新数据库中的任何内容.有谁知道这可能是什么原因.
我的另一个问题是通过实现cronjob方法,我填写PLESK面板的命令是什么.它与上面的命令相同.只是php和文件名.或者是否有像-f -q -something这样的特殊命令.
抱歉所有的菜鸟问题.
如果有人可以帮助我,我真的很感激.
再见!
确保只运行脚本的一个副本的最简单方法是使用flock()
获取文件锁定.例如:
所以基本上你有一个虚拟文件设置,你的脚本在启动时会尝试获取一个锁.如果成功,它就会运行.如果没有,它会退出.这样,一次只能运行一个脚本副本.
注意: flock()
是所谓的咨询锁定方法,这意味着只有在您使用它时才有效.因此,这将阻止您自己的脚本多次运行,但不会对任何其他脚本执行任何操作,这在您的情况下听起来不错.