【发布时间】:2015-03-31 07:42:04
【问题描述】:
我需要在循环中异步调用 PHP 方法。
这是我尝试过的:
foreach ($batch_ids as $batch_id) {
$this->launchBackgroundProcess( $this->sendBatchMail($batch_id) );
}
public function launchBackgroundProcess($call) {
// pclose( popen( $call.'/dev/null &', 'r'));
Proc_close( Proc_open( $call.' > /dev/null & ', 'r'));
return true;
}
现在的错误是我的函数 sendBatchMail 被直接调用并且 launchBackgroundProcess 从未被调用(使用 echo/print/log 来检查)。
因此,如果在一个批次 ID 中有 10k 封邮件,则下一个批次 ID 的 endBatchcMail 永远不会启动。
我希望在后台同时异步调用 sendBatchMail 以获取所有批次 ID。
我不是很精通 pthreads...而且似乎是我的最后一站。
【问题讨论】:
标签: php exec background-process popen