我们使用ServiceStack.RabbitMq,我找不到在Rabbit mq消息上放置自定义属性的方法。我希望发布者在消息上设置属性,并让工作人员阅读它。
一个变体是将该属性作为请求体的一部分移动但我有很多请求,并且说实话,请求根本不应该知道这种信息 - 因为这是消息的元数据。
知道如何实现这一目标吗?
答案 0 :(得分:2)
您可以使用Message Filters in RabbitMqServer添加和内省消息属性,例如:
var mqServer = new RabbitMqServer("localhost")
{
PublishMessageFilter = (queueName, properties, msg) => {
properties.AppId = "app:{0}".Fmt(queueName);
},
GetMessageFilter = (queueName, basicMsg) => {
var props = basicMsg.BasicProperties;
receivedMsgType = props.Type; //automatically added by RabbitMqProducer
receivedMsgApp = props.AppId;
}
};
答案 1 :(得分:0)
您可以将自定义属性添加到正在按下队列的对象,也可以将该属性添加到rabbit消息元数据标头表中。 RabbitMQ消息具有可在发布消息时设置的各种元数据属性。
检查this