laravel队列的使用

本文介绍了如何在Laravel中使用队列处理延时任务和高并发操作。通过配置QUEUE_CONNECTION选择数据库驱动,创建任务类,调度任务并使用队列监听器运行。队列驱动包括sync、database、beanstalkd、sqs和redis。队列的运行方式包括queue:listen和queue:work --daemon,推荐使用queue:work --daemon以保持守护进程运行。在部署时,需要注意线上环境的.env配置。
摘要由CSDN通过智能技术生成

最近在开发的过程中,遇到了这样一个场景:用户评论完之后需要延时一段时间来给代表推送企业微信消息,要求延时时间可以后台配置。这个时候我们首先就考虑到用队列实现。

队列之前也是经常使用,当时laravel的队列倒是第一次尝试,花了一个小时看英文文档,然后就可以按部就班的实现一个小的队列任务了。

laravel Queue

原理:它就类似写一个死循环的脚本在Linux系统持续运行,新的队列任务不断push到这个脚本中。所谓队列,会有数据的生产者和消费者之分。生产者向队列中投递数据,消费者从队列中获取数据。

使用场景:一种是高并发的情况,一种是耗时的操作,可以将任务放到队列中去,消费者从队列取任务执行,当然还有失败的情况如何处理,以及延迟,重试,更复杂的情况还有优先级的实现。

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

使用数据库驱动队列

(1)生成任务表

在终端下输入

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值