消息队列之取消会议和自动退款处理

本文介绍了如何使用消息队列处理会议取消和自动退款,包括编写任务类、处理队列任务超时、避免任务重复执行、确保处理器数量、使用独立连接以及将单任务拆分为多个子任务,以确保系统的稳定性和效率。
摘要由CSDN通过智能技术生成

2020 年,因为新冠疫情原因很多行业交流会议被取消,这就涉及到如何处理退款,理想的场景是当我们在系统管理界面点击取消按钮时,就会在后台自动批量处理所有已付款用户的退款,然后给对应用户发送会议取消和退款成功通知。

编写任务类

对于这样的耗时操作,显然可以借助消息队列来异步处理。我们创建一个对应的会议取消任务类 CancelConference,在 handle 方法中,我们在 each 方法的匿名函数中为每一个参会者处理退款,并发送邮件通知:

处理队列任务超时

这里面,如果使用了第三方支付服务的话,退款需要涉及到网络请求,邮件发送也是个耗时操作,而 Laravel 任务类默认的超时时间是 60s,可能不够,你可以指定 --timeout 将其延长:

这里我们将其设置为了 300 分钟,也就是 5 个小时,之所以设置这么长,是因为 CancelConference 会在一次执行期间为所有参会者退款并发送通知。

当然,和 tries--backoff 等参数一样&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值