2016-02-04 124 views
1

我設置了我的PHP應用程序的本地副本,該應用程序在Symfony框架上運行。由於與C++服務器的套接字通信,它經常處理可能需要一個小時才能完成的請求。我的遠程服務器處理這些很好,但我的本地服務器似乎在放棄請求,從來沒有給予任何迴應。Long PHP請求被刪除

我已經在我的php.ini文件中設置了配置指令max_execution_time。是否有任何其他設置導致此行爲?

+0

您是否也檢查過C++的設置? – Andrew

+0

是的,因爲C++服務器正在遠程運行,所以設置是相同的。遠程PHP服務器可以很好地工作,所以我懷疑本地PHP配置是個問題。 – Reubend

+0

可能是default_socket_timeout? http://www.php.net/manual/en/filesystem.configuration.php#ini.default-socket-timeout – Richard

回答

1

PHP不適用於長時間運行的請求。假設生成一些輸出並將其返回給客戶端。

我建議您不要在http請求期間嘗試長時間處理,但返回202接受響應並將處理委託給後臺進程。

你可以利用這個消息隊列。 http請求會向隊列中添加一條消息,並且會有一組消費者等待消息並對其進行處理。

+0

)我的遠程服務器可以一致可靠地處理這些長時間運行的請求,而不會出現任何錯誤。我只是希望我的本地實例的行爲方式相同。理想情況下,我會進行您所建議的更改,但我沒有時間更改如果它已經在生產中了。 – Reubend