Laravel 队列Queue 避坑

1、延迟问题:

文档说明如下:

Laravel 队列Queue 避坑_第1张图片

实际默认不设置--sleep会默认--sleeo = 3, 如果要求实时性需要配置php artisan queue:work --sleep=0

Laravel 队列Queue 避坑_第2张图片

2、排队

若只开启一个 queue:work进程,则多个队列间将会排队执行,因此官方文档中给出优先级设置方案:

Laravel 队列Queue 避坑_第3张图片

对于优先级要求更高的可以考虑开启多个队列进程:

Laravel 队列Queue 避坑_第4张图片

 

设置队列别名:ProcessPodcast::dispatch()->onQueue('emails');

通过别名开启独立队列:php artisan queue:work redis --queue=emails

3、名称冲突

若未设置队列别名情况下默认为default。此时在一台服务器上开启多个队列将会出现冲突无法执行的情况。

设置别名:env 配置中新增REDIS_QUEUE=test_queue

4、开启异步队列,需要同时开启一下两个配置

QUEUE_DRIVER=redis

QUEUE_CONNECTION=redis

你可能感兴趣的:(laravel)