Laravel Redis 队列配置

首先你得安装上redis,并添加redis扩展

配置

在 .env 中指定队列驱动为redis

QUEUE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

redis 远程登录的话,需要另外的配置,具体自行百度。

编写job

php artisan make:job TestQueue

在 app/Jobs 下会有该php文件,然后在 handle() 中写需要执行的操作,比如下面这样:

file_put_contents('queue.txt',date('Y-m-d H:i:s',time()).'执行'."\n",FILE_APPEND);

分发任务

新建控制器,在 Controller 的方法中,分发任务到指定队列(testQueue)中去

dispatch(new TestQueue())->onQueue('testQueue');

现在访问Controller 方法对应的路由时,你会发现redis中会存上相关的队列信息,但是没有执行写文件方法(file_put_contents),也就是说现在只是把job放入到队列中而已,下一步才是执行队列中的任务。

执行队列

php artisan queue:work redis --queue=testQueue

参考文档:laravel中文文档之队列

你可能感兴趣的:(php)