今天遇到一个“奇葩”的问题,laravel用sync的方式实现队列,job就可以执行,使用队列redis就是不触发的问题,花了几个小时鼓捣才发现,原来是因为两个项目公用一个redis,导致第二个项目不能正常使用redis做队列。

解决办法就是在派发Job到queue的时候指定queue的名称:

$this->dispatch($job->onQueue('register'));

在监听queue的时候指定监听的queue的名称:

php artisan queue:listen --queue register