[英]How to run a php file in the background without actually opening the php file? (Time based event)
[英]PHP run php file in background without time out
我有一个PHP文件,正在尝试在后台运行文件。 不幸的是,文件似乎在一段时间后超时。
这是我尝试过的:
ini_set('max_execution_time', 0);
exec('php process.php /dev/null &');
该程序似乎在后台运行,但遗憾的是几秒钟/分钟后超时。
我收到“错误502”
通过对exec和shell_exec进行一些试验,我发现了一个完美的解决方案! 我选择使用shell_exec,以便可以记录发生(或没有发生)的每个通知过程。 (shell_exec作为字符串返回,这比使用exec容易,将输出分配给变量,然后打开要写入的文件。)
我正在使用以下行来调用电子邮件脚本:
shell_exec("/path/to/php /path/to/send_notifications.php '".$post_id."' 'alert' >> /path/to/alert_log/paging.log &");
重要的是要注意命令末尾的&(如@netcoder所指出)。 该UNIX命令在后台运行一个进程。
脚本路径后用单引号引起来的额外变量设置为$_SERVER['argv']
变量,我可以在脚本中调用这些变量。
然后,电子邮件脚本使用>>输出到我的日志文件,并将输出如下内容:
[2011-01-07 11:01:26] Alert Notifications Sent for http://alerts.illinoisstate.edu/2049 (SCRIPT: 38.71 seconds)
[2011-01-07 11:01:34] CRITICAL ERROR: Alert Notifications NOT sent for http://alerts.illinoisstate.edu/2049 (SCRIPT: 23.12 seconds)
谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.