1、首先安装redis
composer require predis/predis
2、创建jobs 表
php artisan queue:table
3、创建failed_jobs 表
php artisan queue:failed-table
4、修改.env 文件
QUEUE_CONNECTION = redis
QUEUE_DRIVER=redis
5、修改config/queue.php
'default' => env('QUEUE_CONNECTION', 'sync')
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => '{default}',
'retry_after' => 90,
'block_for' => null,
'after_commit' => false,
],
修改 'connection' => 'default' 为了方便的添加队列名称
6、生成任务类
php artisan make:job SendReminderEmail
7、分发任务
SendReminderEmail::dispatch([
'cta_id' => 1,
'chapter_id' => 2,
])->onQueue('processing');
8、业务逻辑
/**
* 通知项目部活动平台
*
* @throws Exception
*/
private function handle()
{
try {
//todo
} catch (\Exception $e) {
\Log::debug('UserCompleteChaper.noticeMiniSite:' . $e->getMessage(), $this->data);
throw $e;
}
}
9、监听队列
php artisan queue:listen --queue=processing
10、重启队列
php artisan queue:restart
11、查看失败任务
php artisan queue:failed
12、重试单一失败任务
php artisan queue:retry 任务id
13、重试所有失败任务
php artisan queue:retry all
14、删除所有失败的任务
php artisan queue:flush