繁体   English   中英

PHP在后台运行php文件而不会超时

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM