laravel学习笔记--消息队列
通过队列,你可以将耗时任务 (如发送电子邮件) 的处理往后推延。延迟这些耗时的任务可以极大地提升 web 请求响应速度
队列配置文件存储在 config/queue.php 中。
在这个文件中,你可以找到框架中包含的每个队列驱动程序的连接配置,其中包括数据库,Beanstalkd,Amazon
SQS,Redis,和一个同步驱动程序(供本地使用)。还包括一个用于丢弃排队任务的 null 队列驱动
驱动程序说明和先决条件
数据库
要使用 database 队列驱动程序,需要一个数据库表来保存任务。要生成创建此表的迁移
php artisan queue:table
去修改项目使用的队列驱动
在.env里面,QUEUE_CONNECTION=database,这个就是将驱动修改成database的驱动
开启队列,因为队列是需要开启才可以使用的,一旦开启,他不会主动关闭,除非是把环境关闭
php artisan queue:work
使用消息队列处理耗时处理,比如:
在消息队列ProcessPodcast类中去编写模拟耗时任务
public function handle()
{
//开始发送邮件,需要5秒才能发送完成
info('开始发送邮件');
sleep(5);
info('邮件发送成功');
}
然后去使用它,
//使用队列发送邮件
ProcessPodcast::dispatch();
return '你好啊';
这样是不需要去等待的,如果是没有使用队列时,它会等待任务处理完才会响应页面
然后,每次执行一次队列,它都会在使用迁移生成的数据库文件jobs中去添加消息,一旦这个任务处理完后,数据库中的数据才会被删除
版权声明:
作者:linrux
链接:https://www.tot7.cn/technology/php/71.html
来源:Code林
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论