easonjake 2021-08-03 12:18 采纳率: 0%
浏览 103

如何解决消息队列同时发送多条消息,消费者接收后开多线程执行任务的冲突?

我现在有一个程序,有两个任务(A任务和B任务),原本任务执行顺序是:
下载服务端的文件-->执行A任务(将A任务的结果填充至文件)-->执行B任务(将B任务的结果填充至文件)-->上传文件。
按照正常顺序执行,最终上传的文件没有问题。但是现在使用消息队列,要分开执行A任务和B任务。
按照设想,任务执行是:
接收A任务-->下载服务端的文件-->执行A任务(将A任务的结果填充至文件)-->上传文件
接收B任务-->下载服务端的文件-->执行B任务(将B任务的结果填充至文件)-->上传文件
但是问题是,A任务和B任务发送消息的时间很短,导致消费者接收消息后,执行B任务时,A任务还没上传最新的文件。这个时候B任务下载下来的文件还是原始文件,最终文件也只有B的结果(因为会覆盖文件)。
请问这样的情况,各位是怎么解决的?

  • 写回答

1条回答 默认 最新

  • Mint.Coder 2021-08-03 12:21
    关注

    线程锁

    评论

报告相同问题?

问题事件

  • 创建了问题 8月3日

悬赏问题

  • ¥15 网络分析仪面板参数解释
  • ¥15 车载image sensor的 datasheet
  • ¥15 kotlin multiplaform 的共享模块支持蓝牙吗还是说安卓和ios的蓝牙都要自己配
  • ¥15 为什么我的查询总是显示无数据,该怎么修改呢(语言-java)
  • ¥15 IDDPM采样结果异常
  • ¥100 求一个,王者荣耀查询隐藏战绩的教材,爬虫代码
  • ¥60 Cocos creator缓动问题
  • ¥15 专业问题提问,7月5号2点之前
  • ¥25 使用cube ai 导入onnx模型时报错
  • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量