1

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

背景

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

我想解耦这个过程,如果数据上传成功,我通知这个客户端并断开它并在另一个线程中处理数据。现在,客户端等待处理数据并成功断开连接。

我的研究

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

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

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

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

4

1 回答 1

0

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

于 2018-10-09T09:45:37.300 回答