php - Laravel Horizon 不执行挂起的作业 - Kubernetes 和 Docker 环境
问题描述
我们的 Laravel 应用程序在 Kubernetes 中有两个不同的 pod,
- 一个在端口 80 上运行的 apache,(CMD /usr/sbin/apache2ctl -D FOREGROUND)
- 和另一个正在运行的工作人员(Laravel Horizon)(CMD php /var/www/artisan horizon)
问题是当我检查地平线仪表板时,它显示“活动”,我可以在“待定作业”部分看到作业,但它们从未真正执行。他们只是无所事事地坐在那里。
现在,当我在运行 apache 的 pod 中进行 SSH 并手动运行命令“php artisan horizon”时,它实际上会执行所有待处理的作业。
我已经确保了以下几点:
- 两个 pod 都连接到同一个 Redis 数据库服务
- 两个 pod 的 Horizon 前缀相同
解决方案
仔细检查您APP_ENV
在 Horizon.php 配置中的匹配环境之一。否则,horizon 不会启动任何队列工作者。
默认情况下,仅local
提供production
环境:
推荐阅读
- javascript - 为什么成员未定义?
- java - 如何在 minecraft 插件中读取/写入 .yml 文件?
- vue.js - 如何使用 vue i18n 翻译数据/道具对象中的字符串?
- c# - 如何使用 C# 正确查找 America/Los_Angeles 的 TimeZoneInfo
- python - 如何在列表数组中找到最大的浮点数?
- javascript - 我正在使用 AJAX 在同一页面内将一个对象从 javascript 发布到 php,我得到的是整个 html 页面而不是对象
- c# - 我在 MouseButtonEventArgs 构造函数中为 MouseDevice 参数添加了什么?
- php - mysqli_num_rows 返回值为 0 个条目
- html - 在托管平台中嵌入网络货币化
- python - 如何让 Keras RNN 与实时生成序列一起工作?