一尘不染

使用CLI每秒运行一次PHP脚本

php

我有运行带有并行PLESK面板的Cent OS的专用服务器。我需要每秒运行一个PHP脚本来更新数据库。这些是时间上的替代方法,它需要每秒进行更新。

我可以使用URL找到我的脚本http://www.somesite.com/phpfile.php?key=123

每秒可以在本地执行该文件吗?喜欢phpfile.php吗?

更新:

自我添加此问题以来已经过了几个月。我最终使用了以下代码:

#!/user/bin/php
<?php
$start = microtime(true);
set_time_limit(60);
for ($i = 0; $i < 59; ++$i) {
    doMyThings();
    time_sleep_until($start + $i + 1);
}
?>

我的cronjob设置为每分钟。我已经在测试环境中运行了一段时间,它运行良好。这真的非常快,而且我看不到CPU和内存使用的增加。


阅读 684

收藏
2020-05-29

共1个答案

一尘不染

您实际上可以在PHP中完成。编写一个程序,该程序将运行59秒钟,每秒检查一次,然后终止。与运行cron作业结合这 每分钟和变戏法似的过程。

一种方法是:

set_time_limit(60);
for ($i = 0; $i < 59; ++$i) {
    doMyThings();
    sleep(1);
}

您唯一需要注意的是doMyThings()函数的运行时间。即使那只是一秒钟的时间,但超过60次迭代,这加起来可能会引起一些问题。如果您运行的PHP> =
5.1(或Windows上的> =
5.3),则可以使用time_sleep_until()

$start = microtime(true);
set_time_limit(60);
for ($i = 0; $i < 59; ++$i) {
    doMyThings();
    time_sleep_until($start + $i + 1);
}
2020-05-29