laravel 任务队列并发分析

需求场景

  1. 本人在电商应用项目是经常 为商家上架商品,商品搬家。同时在多个电商平台商品搬家。为了保障商品搬家任务的顺利完成,需要不断的反复重尝某个商品,直到成功上传。

面临的问题

1.可能因为商家搬家任务多,而造成服务器运行缓慢,或卡死。
2.处理任务的速度太过缓慢。
3.在上架的过程中,经常会面临两端(数据来源端,数据上传端)不是绝对稳定。或数据不合规(需要调整数据)。
4.经常需要调整一些商家的任务要优先。
5.有时要人工触发某个商品上传。
6.不能让商品重复上传。

临时方案

在商家任务数量不多的前提下,直接在创建任务时,执行设定好的并发数量,现在是3个并发。某一个并发有了结果后,再执行一个。直到这个批次执行完成。
5分钟定时任务,把失败的再次加入并发。直到完成任务。
有些商品一直失败,人工复查后,再根据原因手工处理。

这种方案只能在任务量少的情况下进行。

整改升级方案

1.每个电商平台一个任务配置,和任务队列。配置并发数,按加入队列的顺序依次执行。

2.维护并发进程逻辑:

    队列里面还有没有东西
    查看现在并发在执行的,还有几个
     如果少于设定数,就在发起一个。
    查看状态是不是在启动中。

3.手动调整优先执行哪几个。

4.并发前置逻辑:

  1. 清空队列,重新加入到队列
  2. 追加到队列。
  3. 往队列里面加入内容,并去重复。

你的见解

1.如果你有好的方案,欢迎你在评论区给予指点。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!