我们的 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 前缀相同