【发布时间】:2018-03-06 04:25:14
【问题描述】:
我有一个 php 文件,我想每 2 秒运行 1 分钟。因为在我的服务器中,我只能将 min cron 设置为 1 分钟。所以我做了这个脚本。
<?php
$start = microtime(true);
set_time_limit(60);
for ($i = 0; $i < 59; ++$i) {
shell_exec('/usr/local/bin/php /usr/local/www/my_file.php');
time_sleep_until($start + $i + 2);
}
?>
第二个选项是。
<?php
for ($i = 0; $i <= 59; $i+=2) {
shell_exec('/usr/local/bin/php /usr/local/www/my_file.php');
sleep(2);
}
?>
但它们都不起作用,因为我的脚本执行时间是 50 到 60 秒。因此,它不是每 2 秒运行一次,而是每 50 到 60 秒运行一次。那么,是否有任何解决方案可以每 2 秒开始执行新的脚本?我不知道请帮帮我。
【问题讨论】:
-
试过cronjobs ?
-
如果脚本需要 50 秒才能完成,那么每 2 秒执行一次是没有意义的。你只会给自己带来并发、数据访问、不一致记录等方面的问题。
-
@chade_ 试过了,但我可以将最小 cron 设置为 1 分钟...不是每 2 秒一次。