从cron运行时,PHP脚本无法完成

时间:2011-06-07 09:00:17

标签: php cron

我有一个PHP脚本,它遍历数据库中的所有产品,并查看会话文件以查看哪些产品在用户的篮子中。然后它发布分配给篮子的股票,但这些篮子的会话已经过期。很简单。

对于循环中的每个产品,它都会打印出产品ID。

如果我从命令行运行脚本:

./release.php

它贯穿所有产品(~2500)。但是,如果脚本是由crontab运行的,那么它会上升到150到300个产品之间;然后它会停止而没有任何错误。

crontab -l
# m h  dom mon dow   command
*/3 *  *   *   *     /var/www/vhosts/example.com/release.php &> $HOME/release.log

/var/log/cron.log中没有任何用处:

Jun  7 10:00:01 xxxxxxx /USR/SBIN/CRON[15751]: (root) CMD (/var/www/vhosts/example.com/release.php &> $HOME/log)

2 个答案:

答案 0 :(得分:4)

你确定它会停止吗?您每隔3分钟执行一次脚本,并在每次调用时“重置”日志文件。 (>file代替>>file

您是否使用某种锁定机制来阻止脚本在已经运行时启动?

答案 1 :(得分:0)

确保您的脚本一次只运行一个,或者将结果输出到唯一命名的日志文件(这可能更好,因为您希望能够查看过去的执行情况)。

*/3 *  *   *   *     /var/www/vhosts/example.com/release.php &> $HOME/release-$(date "+%Y%m%d%-%H%M%S").log