我正在为我的PHP应用程序开发cron jobs,并计划使用wget/curl来执行cron。我的一些PHP cron jobs可能需要2-3个小时的时间。如何让PHP在cron tab中工作2-3个小时?是否通过cron wget/curl运行这样长时间的jobs是一个好的实践方式?有人有这方面的经验吗?我还有一个邮件队列,需要每10秒运行一次,但cron tab只能以分钟为单位。对于这种情况,有什么建议吗?
感谢您的阅读。
感谢您的阅读。
php命令应该在路径上。php [options] [-f] [--] [args...]
set_time_limit(0);
wget -q0 -T0 http://yourhost/job.php
set_time_limit(0);
set_time_limit(24*60*60);
wget
调用长时间运行的cron作业,请考虑一些在这种情况下不理想的默认设置。默认情况下,如果在900秒的--read-timeout
内未读取到数据,则会尝试--tries
20次。因此,将最大尝试次数设置为1,以确保仅调用cron作业一次,因为您当然不希望在脚本仍在运行时多次调用长时间运行的脚本。wget -t 1 https://url/
如果您正在使用cPanel,并且不希望在每次cron作业运行后收到任何输出电子邮件,则可以使用以下标志-O和-q来隐藏输出,并使用2>&1重定向错误。
wget -O /dev/null -q -t 1 https://url/ 2>&1