Laravel异步队列中能用到MySQL事务回滚吗?
假设在EventServiceProvider
中有一个事件,和一组异步监听器
'App\Events\Game\CreateEvent' => [
'App\Listeners\Game\CreateEventListener1',
'App\Listeners\Game\CreateEventListener2',
'App\Listeners\Game\CreateEventListener3',
],
每个侦听器都会操作DB,我希望其中有一个抛出异常的时候,对整个队列的事务进行回滚,请问这样如何实现呢?
如果是同步(没接队列),可以试试将发送事件时的操作放进事务里面,例如下面代码:
如果是异步的话就要自己实现了,有一个概念叫saga,就是来保持异步的数据一致性的,可以看看有没有相关的包