正好每2秒运行一次php脚本
问题描述:
我有一个php文件,我想运行每2秒钟1分钟。因为在我的服务器上,我只能设置min cron 1分钟。所以我做了这个脚本。正好每2秒运行一次php脚本
<?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秒开始一次新的脚本执行?我没有任何想法,请帮助我。
答
您可以编写一个bash脚本,该脚本每2秒钟执行一次php脚本,以达到指定的数量。而这个bash脚本可以通过cronjob执行。
实施例:
#!/bin/bash
count=10
for i in `seq 1 $count`; do
/bin/php /path/to/scrip.php &
sleep 2
done
+0
它的工作。我必须运行脚本1分钟,所以我更新计数= 30。 –
试过[cronjobs](https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix - /)? –
如果脚本需要50秒才能完成,则每2秒执行一次没有意义。你只是给自己问题的并发性,数据访问,不一致的记录等 – ADyson
@chade_试过,但我可以设置1分钟的最小克伦...不是每2秒。 –