How can I delete a queue in ActiveMQ
When setting Endpoint to temporary the queue is not delete when the consumer exit. It is working when using RabbitMQ but not ActiveMQ.
Here is my code
public static IHostBuilder CreateHostBuilder(string[] args, string? instanceId)
{
return Host.CreateDefaultBuilder(args).ConfigureServices((hostContext, services) =>
{
services.AddMassTransit(busConfig =>
{
busConfig.SetKebabCaseEndpointNameFormatter();
var entryAssembly = Assembly.GetEntryAssembly();
busConfig.AddConsumer<OperationDefinitionConsumer>(typeof(OperationDefinitionConsumerDefinition))
.Endpoint(endpoiintConfig =>
{
endpoiintConfig.Name = "operation-Definition";
endpoiintConfig.Temporary = true;
endpoiintConfig.InstanceId = "_" + instanceId;
});
busConfig.AddSagaStateMachines(entryAssembly);
busConfig.AddSagas(entryAssembly);
busConfig.AddActivities(entryAssembly);
//UseRabbitMq(busConfig);
UseActiveMq(busConfig);
});
});
}
private static void UseActiveMq(IBusRegistrationConfigurator busRegConfig)
{
busRegConfig.UsingActiveMq((context, busConfig) =>
{
busConfig.AutoDelete = true;
busConfig.UseDelayedMessageScheduler();
busConfig.Host("localhost", 61616, hostConfig =>
{
hostConfig.Username("guest");
hostConfig.Password("guest");
});
busConfig.EnableArtemisCompatibility();
busConfig.ConfigureEndpoints(context);
});
}
private static void UseRabbitMq(IBusRegistrationConfigurator busRegConfig)
{
busRegConfig.UsingRabbitMq((context, busConfig) =>
{
busConfig.AutoDelete = true;
busConfig.Host("localhost", "/", hostConfig =>
{
hostConfig.Username("guest");
hostConfig.Password("guest");
});
busConfig.ConfigureEndpoints(context);
});
}