使用 zend 框架 3 在 php 中进行多处理



是否可以从http请求在php中进行多进程/多线程。

背景

我正在从事一个项目,我希望将一些数据(不是来自用户,因此数据上传是一致的(上传到 api。

我想分离该过程,以便如果数据上传成功,我会通知此客户端并断开连接并在另一个线程中处理数据。现在,客户端等待数据被处理,并在成功时断开连接。

我的研究

我已经研究过分叉一个进程,但它总是伴随着一个警告,即不要在 Web 服务器上使用它,此外,我想要一个可以随我正在处理的项目一起扩展的包/模块。

Pthreads:这是 php 线程模块。如上所述,它未配置为仅在 cli 上使用 Web 服务器。

AMPHP:这是一个用 pthreads 构建的模块,它带有相同的警告。

这就提出了一个问题,即如何才能最好地解决问题?我理解这个挑战,如果你为每个连接打开一个新线程,你将有一个1000个线程用于1000个连接,如果这增加,很容易使服务器过载,但我的情况是独一无二的,因为我不希望多线程用于人类连接,并且连接的数量可以很容易地预测。

对于像我这样有类似疑问的人来说,好的,我认为这可以通过消息代理来解决。我想到了不同的可能性,比如守护进程、crontab,但我认为消息代理是最干净的方法。

最新更新