当前位置: 首页 > 工具软件 > Redis Queue > 使用案例 >

laravel 中queue+redis的使用

尉迟雅昶
2023-12-01

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

 类似资料: