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

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

线程锁