我有一个使用RabbitMQ的PHP项目(Symfony2)。我使用它作为简单的消息队列来延迟一些工作(从API发送邮件,重要数据)。消费者在网络服务器上运行,他们的代码是网络服务器仓库的一部分 - 它们与网络一起部署。
问题是: 如何将消费者作为守护进程启动并确保它们始终运行? 在部署应用程序时,如何“优雅地”关闭消费者,以便他们停止消费但完成处理他们开始的消息?
如果它有任何重要意义,我使用Capifony进行部署。
谢谢!
答案 0 :(得分:2)
也许值得看一下用python编写的supervisord。之前我已经使用它来为Gearmand运行工作程序,这是一个作业队列,它完全类似于你使用RabbitMQ的方式。