ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## **Laravel5.5自带消息队列** ##### <blockquote class="danger"><p>Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列。队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间。 队列配置文件存放在 config/queue.php 。每一种队列驱动的配置都可以在该文件中找到,包括数据库,Beanstalkd ,Amazon SQS,Redis,以及同步(本地使用)驱动。其中还包含了一个 null 队列驱动用于那些放弃队列的任务 </blockquote> -------------------------------------------------------------------------------------------------------------------- 1. 配置文件 1.1:.env.production(.env)代码如下所示 ``` BROADCAST_DRIVER=log CACHE_DRIVER=redis SESSION_DRIVER=redis SESSION_LIFETIME=120 QUEUE_DRIVER=redis REDIS_QUEUE=ceshi:save:mongo REDIS_HOST=lnmp_redis REDIS_PASSWORD=123456 REDIS_PORT=6379 REDIS_INDEX=1 REDIS_API_INDEX=0 ``` .env.production(.env)显示结果 ![](https://img.kancloud.cn/61/6c/616c94de1e0c89a76e3bcc3b125fae26_1389x899.png) 1.2:config/queue.php代码如下所示 ``` 'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => 90, ], ``` config/queue.php显示结果 ![](https://img.kancloud.cn/a3/ac/a3ac3d01f3c07c9a8a30525af6dad9fa_1350x744.png) 2. 执行操作 2.1:在容器根目录内,执行命令:php artisan make:job TestJob,生成测试工作类,队列的任务类都默认放在`app/Jobs`目录下。如果这个目录不存在,那当你运行`make:job`Artisan 命令时目录就会被自动创建,生成的类实现了`Illuminate\Contracts\Queue\ShouldQueue`接口,这意味着这个任务将会被推送到队列中,而不是同步执行。 ![](https://img.kancloud.cn/21/21/21210cf46f90a0ca8afca14577ee7fa0_789x89.png) 2.2:Jobs/TestJob业务代码如下: ![](https://img.kancloud.cn/29/4c/294cd272addc961e2433d3db6a69162b_1365x947.png) ![](https://img.kancloud.cn/2e/28/2e2832db0eb59cfb9845a7c37b30085d_1209x958.png) 2.3:控制器内业务代码如下: ![](https://img.kancloud.cn/8f/e1/8fe1501950f2a9ebe260887c0252feda_1531x711.png) 3. 显示结果 3.1:发送 ![](https://img.kancloud.cn/45/c5/45c53d4d5730b07f13bf171a55b95680_908x450.png) 3.2:显示(数据插入成功,数据库为:dlcs) ![](https://img.kancloud.cn/4c/1a/4c1ac74c041a167852c91ed67c5d89ff_1864x936.png)