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