Search code examples
c#rabbitmqnservicebus

Set autodelete and exclusive properties in NServiceBus with RabbitMQ


does anyone know how to set autodelete and exclusive in NServiceBus for RabbitMq queues?

I tried the following but it's not working:

        protected override void OnConfigurationStarting(EndpointConfiguration configuration, ContainerBuilder builder,
        Assembly[] assemblies, TransportExtensions<RabbitMQTransport> transport)
    {
        transport.GetSettings().Set("exclusive", true);
        transport.GetSettings().Set("autodelete", true);

        configuration.PurgeOnStartup(true);
        configuration.DisableFeature<TimeoutManager>();
        configuration.LimitMessageProcessingConcurrencyTo(40);
        configuration.UsePersistence<InMemoryPersistence, StorageType.GatewayDeduplication>();
        configuration.UsePersistence<InMemoryPersistence, StorageType.Subscriptions>();

        transport.UseConventionalRoutingTopology();
        transport.ConnectionString(EndpointSettings.BusConnectionString);

        var recoverability = configuration.Recoverability();

        recoverability.Delayed(x =>
        {
            x.NumberOfRetries(0);
        });

        recoverability.Immediate(x =>
        {
            x.NumberOfRetries(0);
        });

        _bootstrapperWithMessaging.OnConfigurationStarting(configuration, builder, assemblies);
    }

Solution

  • Those settings are not supported by the NServiceBus RabbitMQ transport.