我有一个表单,其中我将数据作为表单中的输入并发送为后期请求,现在希望它应作为接收到的请求发送响应并继续在后台处理数据 所以我的问题是PHP是否有可能,如果可以的话,我该如何实现
答案 0 :(得分:0)
这是可能的,但是需要一些诡计多端的扑克。
默认情况下,PHP是一种阻塞语言,也就是说,浏览器将等待所有处理后再继续,这不是您想要的。
针对此问题的PHP语言解决方案是使用PHP后台工作者:https://secure.php.net/manual/en/class.worker.php,如果您尝试简单的操作,可能就需要这些。
如果您要构建一个更复杂的应用程序,而该应用程序需要高可用性,那么您可能希望使用消息队列来寻找一种更强大的解决方案。有许多可用的技术,大多数以后缀“ mq”结尾。
例如RabbitMQ和IronMQ
其中大多数使用两种协议之一,使用最广泛的是AMQP。这些库的安装通常很简单,但由于它们运行在特定的TCP端口上,因此网络和实现方面可能会有些复杂。
使用这些时,一般的设计结构是mq库作为服务在端口上侦听,PHP通过该端口向该库发送消息,然后mq库将在自己的时间里后台处理后台PHP工作程序处理消息。同时,如果您使用的是websocket或民意测验,则浏览器可以继续执行其他操作,一旦完成更改,就有可能收到警报。
您还可以研究GearMan,它提供了一个用于创建PHP工作程序的框架。
另一种可行的方法是使用Webworker并在浏览器中处理非阻塞代码结构。