1

我正在设计一个基于 RabbitMQ 的消息处理系统,用于各种基于 PHP 的 Web 应用程序。PHP 守护程序将用于从队列中检索项目并执行处理。

这个想法是,例如,向数百个收件人发送电子邮件,消息队列将与 Web 应用程序异步执行。

我的问题是,对于这种类型的系统,最好的方法是什么?

  1. 检测发送的电子邮件的进度,即(2/100)
  2. 知道整个过程何时完成。
  3. 当 2 已知时,在整个过程完成后向 Web 应用程序发送消息?

对于 1,我认为守护程序会将消息发送到完成队列,但是项目 2 和 3 的代码应该放在哪里?

希望这是有道理的。

ķ

4

1 回答 1

0

看起来你需要事件 :)... PHP(与 Java 不同)不提供事件,所以我能看到的唯一选择是让网络服务器轮询守护进程。或者,守护进程可以将完成状态写入一个静态文件,该文件可以由网络服务器轮询(一点性能改进)。轮询器可能是一个 javascript 无限循环(成功类型中断),它不断向文件或网络服务器发出 ajax 请求。

您还可以查看 Comet(服务器推送)方法,其中守护程序可以在完成时将数据推送到服务器。

让我知道这是否有帮助或您需要任何其他详细信息。

关于皮纳基

于 2010-02-25T05:42:10.320 回答