2016-02-04 88 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