我有一个像这样的PHP脚本:
foreach ($items as $item) {
if ($condition) {
shell_exec("php background.php > /dev/null 2>/dev/null
&");
}
}
后台脚本大约需要10秒,并且每次if语句为true时都应该并行运行。问题在于,尽管通常它按计划进行,但有时后台脚本不会完全执行。这样的并行执行是否有任何限制,如果存在,服务器杀死一个进程来执行另一个进程是否正常?
UPD:顺便说一句,如果我加强了条件,减少了同时进程的数量,一切都像魅力一样。答案 0 :(得分:0)
你真的不应该开始这样的后台流程,不管它是一个相对较短的过程。
最好使用here中提出的替代方案:
简短版本为
shell_exec('echo /usr/bin/php -q longThing.php | at now');
,但原因在于此处包含的内容有点长。