laravel 消息队列优先级问题
业务场景:
有个需求必须先执行消息队列A。
执行完A之后再执行B。
执行B完成之后再执行(C,D)C和D之间没有顺序关系。
也就是:A=>B=>(C,D)。
问题:
laravel有withChain可以设定一个层级的执行顺序,比如:
A::withChain([new B($params)])->dispatch($params);
有多个层级的时候怎么玩?
测试过:
A::withChain([new B($params))])->dispatch($params)->chain([new C($params),new D($params)]);
行不通,请问有人知道该如何写这个表达式么?
dispatch_now()
灵活运用就行了A
、B
、C
、D
四个任务在同一个queue
上吗?手动在代码逻辑的结尾处再调其他队列不能解决吗,我之前干过父级队列中再调子级队列,父级队列中还要设置心跳检测子级队列是否处理完,否则等待的骚操作
A的 JOB 里把 B 扔进队列,B 队列里把 C 和 D 扔进队列。