我们正在开发一个应用程序,该应用程序需要处理存储在多行数据库中的巨大文件。可以将处理拆分到多个 JMS 客户端,以便每个客户端都有自己的共享来使用并独立进行处理。如何确定是否所有 JMS 客户端都完成了他们的部分?一旦所有 JMS 客户端完成其任务,我们需要触发处理流程中的另一个步骤。我们使用 MDB 作为 JMS 客户端。
事实上,我们正在收集数据库上的单个任务状态。但是没有这样的大师。流程看起来像这样。
系统的一部分以块的形式接收文件并保存在数据库中。
下一步将这个文件逻辑拆分为 N 个分区,并将分区的元数据作为 JMS 消息发送。
然后 JMS 客户端处理他们的文件部分,当他们完成时,他们在 DB 中的另一个表上更新任务的状态。
但是怎么可能触发下一步呢?一个 JMS 客户端如何知道所有其他客户端已完成其部分。或者我怎么能在这里雇佣一个大师?