我在 AWS ECS 上设置了一个 laravel 应用程序,我已经对我的应用程序进行了 docker 化,并且我在一个单独的容器中运行了 Horizon supervisord。所有的应用程序容器都是无状态的,并且连接到一个单一的 redis/postgres 服务器。现在,由于我的应用程序处于生产状态,我运行了两个容器实例来划分流量负载,因此产生了 2 个主管队列工作人员,因此我面临的问题是一些作业没有执行(至少是我的分析)。下面是地平线仪表板,以便更好地理解。
您可以看到supervisor-1
进程的名称 [ ] 相同,它们正在侦听的队列也相同。我觉得这可能是问题的原因。
找到这个 -> https://medium.com/@setkyarwalar/setting-up-multiple-horizo n-workers-f75b233db521 ,它显示了多个地平线工作人员的设置,这些工作人员一起监听不同的队列。不过,这不完全是我的用例。
我需要了解如何解决并发问题,如何让 2 个独立的工作人员在听同一个队列的同时仍然能够顺利执行所有作业?
提前感谢任何帮助