我有一个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)
答案 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