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

迈克尔·佩林

我已经阅读了许多关于RabbitMQ集成到Symfony应用程序中的(很棒的)文章。

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

app/console rabbitmq:consumer -m 50 upload_picture

我有一个问题。您是否应该建议将此命令添加到crontab?是否有任何最佳做法?

盗窃

较受接受的方法是保持消费者运行。诸如SupervisorCircus之类的工具可以为您提供帮助。请参阅此讨论但是,如果您可以在没有更多消息的情况下退出使用方,则也可以使用cron。尽管这可能会导致使用消息时出现延迟。您无法立即对邮件做出反应。用户可能需要等待一分钟,然后才能启动任何任务/接收到邮件。

长时间运行使用者(或与此有关的任何PHP代码)时,请考虑以下因素:

尝试避免内存使用量累积。不要在不清除数组的情况下继续追加数组。例如,这意味着您不应该Monolog使用FingersCrossedHandler,因为这会保留日志消息的缓冲区。适用于单个请求,而不适用于耗时数天的调试消息。

即使您很小心,PHP也会泄漏内存。您能说什么,PHP ...(这确实可能是一个流行语)在我的情况下,我安装了一个cronjob,它每晚都会重新启动工作程序,但是从理论上讲,消费者可以在内存耗尽之前运行大约一个月。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我应该将 .swiftpm 添加到 gitignore 吗?

我应该将Pod添加到VCS吗?

我应该将sass源映射添加到我的git repo吗?

我应该将Python的pyc文件添加到.dockerignore吗?

将Postgres垃圾箱添加到PATH:我应该“导出”吗?

我应该将go dep vendor /添加到.gitignore吗?

如果没有它,我应该将RecyclerView依赖项添加到gradle吗?

我应该将Django admin静态文件添加到git repo吗?

我应该将.idea / workspace.xml添加到gitignore吗?

我应该将密钥库文件添加到版本控制中吗?

我应该将.idea / jarRepositories.xml添加到gitignore吗?

我应该将组件添加到JFrame或它的contentPane吗?

我应该将 __init__.py 添加到 git 存储库吗?

Firebase:我应该将GoogleService-Info.plist添加到.gitignore吗?

我应该将已删除的文件添加到舞台区域吗?

我知道您可以将HTML添加到RSS 2.0,但是您应该添加整个页面吗?

我应该将google-services.json(来自Firebase)添加到我的存储库中吗?

我应该将Visual Studio 2015 .vs文件夹添加到源代码管理吗?

我可以将样式标签添加到innerHTML吗?

我可以将Crashlytics添加到iOS库吗?

我可以将StretchDirection添加到VisualBrush吗?

我可以将课程模板添加到元组吗?

我可以将pattern属性添加到textarea吗?

我可以将课程添加到链接中吗

我可以将 JLabels 添加到数组中吗?

将脚本添加到Linux“ at”命令队列时,我可以访问设置的环境变量吗?

我应该将我的Websphere Liberty Profile项目添加到SCM吗?

Docker 容器连接中的服务器被拒绝,我应该将 time.Sleep(100 * time.Millisecond) 添加到我的测试中吗?

将新功能添加到开源项目时,应该更新README.md吗?