laravel - Laravel Queue:多队列、多任务、多远程服务器
问题描述
我正在开发一个应用程序,它在几 (10) 个服务器(s1 到 s0)上运行远程任务(任务 A 和任务 B),一旦部件完成,任务 C 就会在本地服务器上运行。所有这些任务可能需要一段时间才能完成(从一分钟到一小时),但任务 A 的时间是任务 B 的 4 到 20 倍(每次运行都可能发生变化)。
我不希望一次在任何服务器上运行多个任务。我正在努力提高它的工作效率,所以我认为 laravel8 的 Queue 可以达到我的目的。我的想法是我说 5 个队列 q1、q2、q3、q4、q5 然后我为前 3 台服务器的队列 1 到 3 添加任务 A,为 s4 和 s5 添加任务 B,然后我将为所有任务重复。在此之后我的队列看起来像这样
q1 q2 q3 q4 q5
s1ta s2ta s3ta s4tb s5tb
s6ta s7ta s8ta s9tb s0tb
s1tb s2tb s3tb s4ta s4ta
s6tb s7tb s8tb s9ta s0ta
--tc
虽然这看起来不错,但如果 q1 到达任务 C 但其他队列正在运行怎么办?当所有队列都为空时,有没有办法可以触发任务 C?有一个更好的方法吗?我应该为此使用除队列之外的其他东西吗?如果是的话怎么办?队列中的作业完成时是否触发事件?
我等待您的想法和建议。
谢谢
克雷格
*** 编辑 *** 对此进行更多思考,将任务 a 和任务 b 在同一个队列上依次运行是有意义的,因此:
q1 q2 q3 q4 q5
s1ta s2ta s3ta s4ta s5ta
s1tb s2tb s3tb s4tb s5tb
s6ta s7ta s8ta s9ta s0ta
s6tb s7tb s8tb s9tb s0tb
--tc
但是任务 C 的问题仍然存在,如果任务尚未开始,如果它可以移动到一个空队列,那就太好了。现在我不知道从哪里开始......
解决方案
推荐阅读
- node.js - Angular/Electron Save screenshot to image file
- unity3d - 相机方向错误?
- c++ - Notifying wxSizer of dynamic layout changes
- sorting - 通过 Delphi 在 OpenOffice Calc 中排序
- github - 如何停止在 GitHub 上克隆我的应用程序文件?
- wordpress - Wordpress 多站点语言切换器插件以显示不同语言的帖子 url
- php - 展开数据库中的值
- lombok - lombok SuperBuilder 设置默认值
- git - git 在 VSCode 远程容器上运行不佳
- laravel-7 - 使用 laravel 7 将多个图像下载为 zip 文件