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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容