如果工人作为守护进程运行,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 排队的作业不会出现在新的遗物中的主要内容,如果未能解决你的问题,请参考以下文章

laravel 队列守护进程邮件因 SSL 错误而停止运行

celery django 守护进程上的多个工作人员和多个队列

芹菜不启动多个工人

Impala 资源管理

Laravel Artisan CLI 安全地停止守护进程队列工作者

Mac OSX 上的 XAMPP:为啥作为“守护进程”运行? [关闭]