当前位置:  开发笔记 > 编程语言 > 正文

Symfony:我应该将rabbitmq:consumer命令添加到crontab吗?

如何解决《Symfony:我应该将rabbitmq:consumer命令添加到crontab吗?》经验,为你挑选了1个好方法。

我已经阅读了很多关于RabbitMQ集成到Symfony应用程序的文章.

所述RabbitMqBundle使得它很容易忘恩它,并且它提供了方便的rabbitmq:consumer命令从像这样的队列的消息:

app/console rabbitmq:consumer -m 50 upload_picture

不过我有一个问题.您是否应该建议将此命令添加到crontab?有没有关于它的最佳实践?



1> Xatoo..:

更容易接受的方法是让您的消费者继续运行.Supervisor和Circus等工具可以帮助您.见这个讨论.但是如果你没有更多的消息可以让你的消费者退出,你也可以使用cron.虽然这可能会导致消费消息的延迟.您无法立即对邮件做出反应.在任何任务启动/收到邮件之前,用户可能需要等待一分钟.

在长时间运行您的消费者(或任何PHP代码)时,请考虑以下因素:

尽量避免内存使用累积.不要在没有清除它们的情况下继续附加到数组.这意味着您不应该在Monolog中使用FingersCrossedHandler,因为这会保留日志消息的缓冲区.适用于单个请求,不适用于几天的调试消息.

即使你小心,PHP也可能泄漏内存.你能说什么,PHP ......(这确实可以成为一句流行语)在我的情况下,我安装了一个cronjob,每晚重新启动工作人员,但从理论上讲,消费者可能会在内存不足之前运行一个月左右.


谢谢您的回答.这正是我所寻找的,因为在RabbitMQ for Symfony教程中从未提及过.似乎有一个有趣的Symfony包来处理RabbitMQBundle的自动Supervisord配置:https://github.com/Phobetor/rabbitmq-supervisor-bundle
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有