在使用并行处理来完成任务的分布式系统中,我想确定何时完成了所有子任务,我可以应用什么设计方法或原则?
我使用RabbitMQ来使用从单个进程生成的消息,每个使用者都可以向其他可以并行处理的RabbitMQ队列生成多条消息。我希望能够确定从第一个任务生成的所有任务何时完成,我如何实现这一点?
发布于 2023-02-23 13:07:10
你想投票吗(反复问“你完成了吗?”)还是等着阻止原语?
第一种方法很简单:有一个数据库表,其中每行代表一个任务。一列是当前状态。只要其中一行具有“繁忙”状态,您还没有完成。
第二个任务也不难:创建一个“已完成”队列,其中每个任务都会放置一条“I‘where”消息。应该等待所有任务完成的进程只需要知道产生了多少任务,并从队列中检索到许多消息。一旦检索到最后一条消息,您就会知道所有任务都已完成。
https://softwareengineering.stackexchange.com/questions/444115
复制相似问题