我已经阅读了许多关于RabbitMQ集成到Symfony应用程序中的(很棒的)文章。
所述RabbitMqBundle使得它很容易忘恩它,并且它提供了方便的rabbitmq:consumer
命令从像这样的队列的消息:
app/console rabbitmq:consumer -m 50 upload_picture
我有一个问题。您是否应该建议将此命令添加到crontab?是否有任何最佳做法?
较受接受的方法是保持消费者运行。诸如Supervisor和Circus之类的工具可以为您提供帮助。请参阅此讨论。但是,如果您可以在没有更多消息的情况下退出使用方,则也可以使用cron。尽管这可能会导致使用消息时出现延迟。您无法立即对邮件做出反应。用户可能需要等待一分钟,然后才能启动任何任务/接收到邮件。
长时间运行使用者(或与此有关的任何PHP代码)时,请考虑以下因素:
尝试避免内存使用量累积。不要在不清除数组的情况下继续追加数组。例如,这意味着您不应该在Monolog中使用FingersCrossedHandler,因为这会保留日志消息的缓冲区。适用于单个请求,而不适用于耗时数天的调试消息。
即使您很小心,PHP也会泄漏内存。您能说什么,PHP ...(这确实可能是一个流行语)在我的情况下,我安装了一个cronjob,它每晚都会重新启动工作程序,但是从理论上讲,消费者可以在内存耗尽之前运行大约一个月。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句