Web サービスを使用してこの非常に長いプロセスがあり、ajax 要求を介して単一のボタンで起動する必要があるため、プロセスが完了したときに応答メッセージを表示できます。ajax リクエストは Zend コントローラーを呼び出すだけで、これは次のように要約できます。
public function myajaxAction() {
$myModel = new MyModel();
$someData = $myModel->fetchAll();
foreach ($someData as $dataElement) {
$response = call_to_remote_client($dataElement['ID']);
echo $response;
}
$this->_helper->viewRenderer->setNoRender();
$this->_helper->getHelper('layout')->disableLayout();
}
$response はsuccessのパラメーターとして受信され、html() でいくつかの応答 div に変換できます。
しばらくはすべてうまくいきましたが、上記のプロセスの実行に時間がかかりすぎると、502 Bad Gateway エラーのために ajax リクエストが失敗することがわかりました。Firebug によると、これは毎回 5 分 0 秒後に発生するため、タイムアウトのように聞こえます。
まったく同じ問題について議論しているように見えるこのリンクを見つけました。問題をよりよく特定するのに役立ちましたが、これに対する解決策は思いつきません。このタイムアウトを増やす方法はありませんか? stdout で stream_set_timeout() を使用しようとしましたが、自分が何をしているのか明らかにわからなかったため、明らかに機能しませんでした。
現在、私の選択肢は何ですか?