ServiceStack.RabbitMq - 如何在消息上设置自定义属性

时间:2015-12-11 04:48:07

标签: rabbitmq servicestack

我们使用ServiceStack.RabbitMq,我找不到在Rabbit mq消息上放置自定义属性的方法。我希望发布者在消息上设置属性,并让工作人员阅读它。

一个变体是将该属性作为请求体的一部分移动但我有很多请求,并且说实话,请求根本不应该知道这种信息 - 因为这是消息的元数据。

知道如何实现这一目标吗?

2 个答案:

答案 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