消息队列中作业的唯一ID?

Naf*_*Kay 4 java message-queue rabbitmq

我有一个应用程序,我正在编写,需要在后台执行长计算,所以我基本上有以下工作流程:

  1. 客户端将作业提交给边缘"调度程序"服务器.
  2. Dispatcher服务器将作业提交到消息队列.
  3. 计算服务器拉动作业并开始工作.

计算服务器还提供有关工作状态的实时反馈,以便客户端可以观察进度.

我现在遇到的主要问题是弄清楚如何为队列中提交的消息获取唯一的作业ID,以及在服务器为消息提供服务的事实之后弄清楚.一旦最初提交作业(步骤1),客户端应该接收识别作业的唯一令牌.然后,客户端应该能够定期轮询调度程序服务器,以检查令牌的状态是否已经启动.

在计算服务器为请求提供服务之后,客户端应该在轮询调用中获取编码器服务器的DNS地址或IP地址.

我怎样才能做到这一点?消息队列是否为队列中的每条消息提供了唯一标识令牌的概念?

Naf*_*Kay 13

事实证明,RabbitMQ 确实为消息提供了唯一的ID,特别是在RPC应用程序中很有用,这是我正在创建的应用程序类型.每条消息都有一个correlationId唯一标识它的消息,并且可以提供一个callback通知,以便在作业完成时或在任何时刻通知原始服务器.