laravel 任务队列并发分析

需求场景#

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

面临的问题#

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

临时方案#

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

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

整改升级方案#

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

2. 维护并发进程逻辑:#

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

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

4. 并发前置逻辑:#

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

你的见解#

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
Dcat-Admin (plus 版) 是汇聚 Filament,Laravel-admin , Dcat-admin 优点于一身的基于 Laravel + Bootstrap 的极速开发框架
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Dcat-plus Admin @ 速码邦
文章
33
粉丝
52
喜欢
180
收藏
147
排名:442
访问:2.1 万
私信
所有博文
社区赞助商