RabbitMQ + PHP部署策略


RabbitMQ + PHP deployment strategy

我有一个使用RabbitMQ的PHP项目(Symfony2)。我使用它作为简单的消息队列来延迟一些作业(发送邮件,来自api的重要数据)。消费者运行在web服务器上,他们的代码是web服务器repo的一部分——他们与web部署在同一个地方。

问题是:如何将消费者作为守护进程启动,并确保它们始终运行?在部署应用程序时,我如何"优雅地"关闭消费者,以便他们停止消费,但完成处理他们启动的消息?

如果它很重要,我使用Capifony进行部署。

谢谢!

也许值得看看用python写的一些东西。我以前用过它来运行Gearmand的worker,这是一个作业队列,它的作用类似于你使用RabbitMQ的方式。