laravel 队列的坑

laravel 队列的坑

正确的入坑姿势

使用laravel horizonphp artisan horizon 运行 队列。

使用->onQueue(SendMail)方法指定队列时,Job可以正常的载入,Queue不正常……

判断为Queue问题

使用php artisan queue:work --queue=SendMail,default 时正常显示

判断为laravel horizon问题

一起出坑吧

config\horizon中添加Queue 名称就好了~

要注意在localprodution的区别。

没有config\horizon文件?

运行php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"

其他

更改redis中存储位置

当多个web服务一同使用horizon时,

要在.env中设置 HORIZON_PREFIX=horizon:name 区分 不同应用 否则出错。

刚要使用不同的redis数据表时,要在设置config\horizon中的use项,

同时在config\databaseredis设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'redis' => [

'client' => 'predis',

'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 1,
],

'session' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 2,
],

'queue' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 3,
],

命令

1
2
3
4
5
6
7
8
9
10
11
运行
php artisan horizon

彻底关闭
php artisan horizon:terminate

暂定
php artisan horizon:pause

恢复
php artisan horizon:continue

以上