laravel-队列(queue)

使用场景

例如我们需要注册的时候需要发送一条邮件提醒用户,平时的时候我们直接
在逻辑层注册完成之后执行一个发送邮件,这样做的话我们必须要等待邮件发送
完毕的时候用户才可以注册成功,效率很慢,这个时候我们就需要用到队列的功能了

使用

1.配置驱动

在.env文件中配置QUEUE_CONNECTION=database
Laravel可配置多种队列驱动,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具体参见app/config/queue.php)
其中sync为同步,database为使用数据库,后面三种为第三方队列服务,最后一种为不使用队列。
通过在 .env 中的 QUEUE_CONNECTION 选项,来决定选择何种驱动。
如 QUEUE_CONNECTION=database 即为选择数据库驱动队列。

2.生成表

使为了使用 database 队列驱动,你需要一张数据表来存储任务。
运行 queue:table Artisan 命令来创建这张表的迁移文件。
当迁移文件创建好后,你就可以使用 migrate 命令来进行迁移

#生成迁移文件
php artisan queue:table
#生成迁移文件
php artisan migrate

3.下面开始生成任务类

#使用artisan命令生成
php artisan  make:job SaveLog
#该命令会在app\Jobs\SaveLog.php中

4.调用job

这个时候就会看见数据库中产生了相应的队列数据

5.执行命令开启队列

php artisan queue:work

如果您想使用redis实现队列只需要修改

config\queue.php

posted @ 2020-12-31 14:05  以己为镜  阅读(1814)  评论(0编辑  收藏  举报