如何在使用RawRabbit发布消息时指定队列名称

时间:2018-03-19 16:18:03

标签: asp.net-core rabbitmq rawrabbit

到目前为止,我发现可以安装RawRabbit.Enrichers.Attributes包并使用属性配置消息类:

[Queue(Name = "my_queue"]
private class AttributedMessage
{       
}

并设置

var client = RawRabbitFactory.CreateSingleton(new RawRabbitOptions
{
    Plugins = plugin => plugin.UseAttributeRouting()
});

但我宁愿指定队列名称和发布命令以保持更灵活:

await _busClient.PublishAsync(message /*some_config_here???*/);

是否可以使用RawRabbit 2.0.0-rc5?

1 个答案:

答案 0 :(得分:0)

我认为这可能对您有帮助

    static async Task Publish()
    {
        var config = new RawRabbitConfiguration
        {
            Username = "YOUR_RMQ_USER",
            Password = "YOUR_RMQ_PWD",
            Port = 5672,
            VirtualHost = "/",
            Hostnames = { "YOUR_RMQ_HOST_OR_IP" }
        };
        var bus = BusClientFactory.CreateDefault(config);


        await bus.PublishAsync(
            message: yourAwesomeMessagePayload,
            configuration: ctx => ctx.WithExchange(BuildExchangeConfig)
                                     .WithRoutingKey("custom.message.routing.key")
            );

        Console.WriteLine("message published!");
    }

    static void BuildExchangeConfig(IExchangeConfigurationBuilder e)
    {
        e.WithName("YOUR_EXCHANGE_NAME")
            .WithAutoDelete(false)
            .WithDurability(true)
            .WithType(ExchangeType.Topic);
    }