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

ServiceStack.RabbitMq - how to set custom attributes on messages

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

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

知道如何实现吗?

您可以将自定义属性添加到您正在下推 queue 的 object 或将该属性添加到兔子消息元数据 header table。 RabbitMQ 消息具有各种元数据属性,可以在发布消息时设置这些属性。

勾选this

您可以使用 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;
    }
};