如果工人作为守护进程运行,Laravel 排队的作业不会出现在新的遗物中
Posted
技术标签:
【中文标题】如果工人作为守护进程运行,Laravel 排队的作业不会出现在新的遗物中【英文标题】:Laravel queued jobs don't appear in new relic if worker runs as daemon 【发布时间】:2016-12-27 10:21:41 【问题描述】:我注意到排队的作业不会作为任何类型的事务出现在新的遗物中。
经过一番挖掘后,我发现如果我“直接”运行我的工匠队列工作人员,它们看起来确实很好,但如果我将它们作为守护进程运行(这就是我为我的工匠队列设置的:supervisord 配置中的工作命令)他们没有。
为什么会这样?有什么可以做的吗?
我想将它们与 --daemon 设置一起使用,以避免每个作业都启动框架。然而,能够看到新遗物发生了什么也很重要。
计划的命令和常规的 http 请求似乎可以很好地跟踪。
我在几台 Forge 服务器上运行 Laravel 5.2,同时使用 php 5.6 和 7.0。
谢谢
【问题讨论】:
【参考方案1】:New Relic 在版本 6.6.0
中添加了对 Laravel 队列的开箱即用检测支持作为实验性功能。检查您的代理版本是否至少为6.6.0
,然后将此属性添加到您的newrelic.ini
:
newrelic.feature_flag=laravel_queue
有关详细信息,请查看发行说明: https://docs.newrelic.com/docs/release-notes/agent-release-notes/php-release-notes/php-agent-660169
【讨论】:
这是否已成为标准版本,还是仍需要手动添加? 嗨@djt - Laravel 队列的检测仍处于功能标志下,因此您需要添加配置选项以启用它。我们计划在未来将此默认设置为“开启”。 在应用--daemon
选项的情况下这项工作是否有效,我仍然没有得到任何通过。
对于每个将看到此内容的人,newrelic.feature_flag=laravel_queue
从 newrelic 代理的 v8.0.0.204 中被忽略:docs.newrelic.com/docs/release-notes/agent-release-notes/…以上是关于如果工人作为守护进程运行,Laravel 排队的作业不会出现在新的遗物中的主要内容,如果未能解决你的问题,请参考以下文章
celery django 守护进程上的多个工作人员和多个队列