繁体   English   中英

RabbitMQ-Ruby-兔子-将消息(重新)发布到下一个队列的最佳实践

[英]RabbitMQ - Ruby - Bunny - Best practise to (re-)publish messages to next queue

我们正在检查RabbitMQ的某些工作流程用例。

到目前为止,我们用红宝石创建了一个适合我们需求的测试环境,并且看起来工作正常。

在成为Rabbit新手的情况下,我的问题是关于最佳/良好实践。

让我们定义3个QUEUES(仅作为示例)

  1. Q_DECISION
  2. Q_RIGHT
  3. Q_LEFT

每个生产者将在Q_DECISION内发布消息

该队列上有一个工作人员正在检查身体的某些内容。 如果决定,则必须将消息/任务移至Q_LEFT或Q_RIGHT。

我们存储的是特定于消息的信息properties.header,因此我们重复它们以及正文。

到目前为止没有问题,现在的问题是关于重新发布:

q_decision.subscribe(:block => true) do |delivery_info, properties, body|

  # ... more code here

  if (decision_left)

    q_left.publish(body, :headers => properties.headers, :persistent => true)

  end

end

如果我们像上面那样重新发布,是否会从上一条消息中删除某些内容?

delivery_infoproperties中也定义/存储了很多属性。

我们需要重新发布它们还是仅重新发布自己创建的标题和正文?

邮件正文和邮件头是两回事。 我认为兔子或任何客户端库都会与您传递的正文一起创建一条新消息。 这意味着您还需要重新设置要传递到下一个队列的标头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM