// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddActiveMq(name: "my-artemis-cluster", endpoints: new[] { Endpoint.Create(host: "localhost", port: 5672, "guest", "guest") }) .ConfigureConnectionFactory((provider, factory) => { factory.LoggerFactory = provider.GetService <ILoggerFactory>(); factory.RecoveryPolicy = RecoveryPolicyFactory.ExponentialBackoff(initialDelay: TimeSpan.FromSeconds(1), maxDelay: TimeSpan.FromSeconds(30)); factory.MessageIdPolicyFactory = MessageIdPolicyFactory.GuidMessageIdPolicy; factory.AutomaticRecoveryEnabled = true; }) .AddConsumer("a1", RoutingType.Multicast, "q1", async(message, consumer, token, serviceProvider) => { Console.WriteLine("q1: " + message.GetBody <string>()); await consumer.AcceptAsync(message); }) .AddConsumer("a1", RoutingType.Multicast, "q2", async(message, consumer, token, serviceProvider) => { Console.WriteLine("q2: " + message.GetBody <string>()); await consumer.AcceptAsync(message); }) .AddProducer <MyTypedMessageProducer>("a1", RoutingType.Multicast) .EnableQueueDeclaration() .EnableAddressDeclaration(); services.AddActiveMqHostedService(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddActiveMq(name: "my-artemis-cluster", endpoints: new[] { Endpoint.Create(host: "localhost", port: 5672, "guest", "guest") }) .ConfigureConnectionFactory((provider, factory) => { factory.LoggerFactory = provider.GetService <ILoggerFactory>(); factory.RecoveryPolicy = RecoveryPolicyFactory.ExponentialBackoff(initialDelay: TimeSpan.FromSeconds(1), maxDelay: TimeSpan.FromSeconds(30)); factory.MessageIdPolicyFactory = MessageIdPolicyFactory.GuidMessageIdPolicy; factory.AutomaticRecoveryEnabled = true; }) .AddLeaderElection(new LeaderElectionOptions { ElectionAddress = "ElectionAddress", ElectionMessageInterval = TimeSpan.FromSeconds(1), HandOverAfterMissedElectionMessages = 3 }) .EnableQueueDeclaration() .EnableAddressDeclaration(); services.AddActiveMqHostedService(); services.AddHostedService <LeaderElectionHostedService>(); }