采用DB的方式记录队列在执行的过程中,可能发生的各种异常错误
- 插件引入
1.0 引入redis组件
composer -vvv require illuminate/redis:^5.6
1.1 在composer.json文件里添加如下配置
"repositories": [
{
"name": "sky/base-queue",
"type": "vcs",
"url": "git@github.com:wangyulu/base-queue.git"
}
]
1.2 在项目根目录执行
composer -vvv require sky/base-queue:dev-master
- 添加ENV配置
1.1 队列配置
# 指定队列所使用的Redis实体
QUEUE_REDIS_CONNECTION=queue
# 忽略队列失败时默认的处理逻辑
QUEUE_FAILED_TABLE=null
# 业务Code
# 1.a_api 2.b_api
QUEUE_BUSINESS_ID=1
# 环境 1.生产 2.灰度 3.测试 4.开发
QUEUE_ENVIRONMENT=1
1.2 COMMON_DB数据库配置
#COMMON_DB
DB_COMMON_HOST=xx
DB_COMMON_PORT=3306
DB_COMMON_DATABASE=common
DB_COMMON_USERNAME=xx
DB_COMMON_PASSWORD=xx
- config/database.php
// redis下添加如下代码
'queue' => [
'host' => env('QUEUE_REDIS_HOST', '127.0.0.1'),
'port' => env('QUEUE_REDIS_PORT', 6379),
'database' => env('QUEUE_REDIS_DATABASE', 2),
'password' => env('QUEUE_REDIS_PASSWORD', null),
],
- bootstrap/app.php
// 去除如下代码的注释
// $app->withFacades();
// $app->withEloquent();
// 添加如下代码
$app->singleton(Illuminate\Contracts\Bus\Dispatcher::class,
\Sky\BaseQueue\Providers\AdapterBusServiceProvider::class
);
$app->register(Illuminate\Redis\RedisServiceProvider::class);
$app->register(\Sky\BaseQueue\Providers\AdapterBusServiceProvider::class);
-
更新记录
-
2019-09-28
添加redis_mix扩展,支持自定义payload参数
-
队列ENV配置
# 指定队列所使用的Redis实体 QUEUE_REDIS_MIX_CONNECTION=queue
-
队列文件配置(config/queue.php)
// 新增 'redis_mix' => [ 'driver' => 'redis_mix', 'connection' => env('QUEUE_REDIS_MIX_CONNECTION', 'default'), 'queue' => 'default', 'retry_after' => 60, ],
-
-