Laravel队列的使用

创建队列

命令行执行下面的命令,生成job文件

php artisan make:job 任务名

编写任务

在app/Jobs目录下找到任务文件,在handle()方法中写任务具体代码

分发任务

在控制器中调用该队列的dispatch()方法,相当于往队列添加一个任务

SendEmail::dispatch(); //SendEmail是我的任务文件类名

访问控制器中的方法,在控制器或者其他调用dispatch()方法的地方会往队列插入任务到队列,队列启动监听后会自动执行,也就是消费队列中的任务。

监听队列

在命令行启动队列监听

php artisan queue:work

延迟队列

有时候我们不希望任务马上执行,而是等待一段时间后再执行,应用场景例如订单超时取消,会员提前续费通知,消息失败重发等等很适合用延迟队列来解决。要使用延迟队列,我们只需要在分发任务时调用delay方法即可实现,例如等待10分钟后再发送邮件:

SendEmail::dispatch()->delay(now()->addMinutes(10)); //SendEmail是我的任务文件类名

更多用法参考官方文档:https://learnku.com/docs/laravel/5.5/queues/1324#260f10

你可能感兴趣的:(Laravel队列的使用)