laravel queue Bus::batch 问题
如果当前批次执行 job 没有使用aftercommit的话 就会报这个错误 说redis管道不能和事务一起用
用aftercommit没报错的原因是在当前里面没有去连接redis执行 因为都使用了aftercommit 不会在当前这个里面执行
用 aftercommit 的话 我批次就感觉就没有意义了 因为 用aftercommit的话 最后还是一笔笔的丢入到队列里面去的 不像这个管道一次连接丢过去的
有大佬碰到过这个问题吗
找到問題了
當queue用horizon的時候 是同一個實例 同一個實例就會出現管道嵌套 不同實例連接可以進行管道嵌套 同一個實例連接不能進行管道嵌套
因為horizon監聽了任務 push後 就會觸發事件 那個時間裡面也是一個管道 所以就會報這個Can’t activate pipeline in multi mode! 其實這個意思不是說管道嵌套事務 是管道嵌套了事務 事務裡面由嵌入了同一個實例連接的管道
因為我 在database.php的redis配置新增了一個 key是horizon的配置 然後horizon也是使用的這個配置(動態配置)

所以queue和horizon就是一個實例 只要在database.php的redis配置裡面不要新增key是horizon就可以了
以下是測試上述問題