public async Task SetUp() { receivedMessages = new BlockingCollection <IncomingMessage>(); var connectionString = Environment.GetEnvironmentVariable("RabbitMQTransport_ConnectionString") ?? "host=localhost"; var useTls = connectionString.StartsWith("https", StringComparison.InvariantCultureIgnoreCase) || connectionString.StartsWith("amqps", StringComparison.InvariantCultureIgnoreCase); var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Classic), connectionString); var connectionConfig = transport.ConnectionConfiguration; connectionFactory = new ConnectionFactory(ReceiverQueue, connectionConfig, null, true, false, transport.HeartbeatInterval, transport.NetworkRecoveryInterval, null); infra = await transport.Initialize(new HostSettings(ReceiverQueue, ReceiverQueue, new StartupDiagnosticEntries(), (_, __, ___) => { }, true), new[] { new ReceiveSettings(ReceiverQueue, new QueueAddress(ReceiverQueue), true, true, "error") }, AdditionalReceiverQueues.Concat(new[] { ErrorQueue }).ToArray()); messageDispatcher = infra.Dispatcher; messagePump = infra.Receivers[ReceiverQueue]; subscriptionManager = messagePump.Subscriptions; await messagePump.Initialize(new PushRuntimeSettings(MaximumConcurrency), (messageContext, cancellationToken) => { receivedMessages.Add(new IncomingMessage(messageContext.NativeMessageId, messageContext.Headers, messageContext.Body), cancellationToken); return(Task.CompletedTask); }, (_, __) => Task.FromResult(ErrorHandleResult.Handled) ); await messagePump.StartReceive(); }
public async Task SetUp() { receivedMessages = new BlockingCollection <IncomingMessage>(); var connectionString = Environment.GetEnvironmentVariable("RabbitMQTransport_ConnectionString"); if (string.IsNullOrEmpty(connectionString)) { throw new Exception("The 'RabbitMQTransport_ConnectionString' environment variable is not set."); } var useTls = connectionString.StartsWith("https", StringComparison.InvariantCultureIgnoreCase) || connectionString.StartsWith("amqps", StringComparison.InvariantCultureIgnoreCase); var transport = new RabbitMQTransport(Topology.Conventional, connectionString); connectionFactory = new ConnectionFactory(ReceiverQueue, transport.Host, transport.Port ?? 5672, transport.VHost, transport.UserName, transport.Password, useTls, null, false, false, transport.HeartbeatInterval, transport.NetworkRecoveryInterval, null); infra = await transport.Initialize(new HostSettings(ReceiverQueue, ReceiverQueue, new StartupDiagnosticEntries(), (_, __, ___) => { }, true), new[] { new ReceiveSettings(ReceiverQueue, ReceiverQueue, true, true, "error") }, AdditionalReceiverQueues.Concat(new[] { ErrorQueue }).ToArray()); messageDispatcher = infra.Dispatcher; messagePump = infra.Receivers[ReceiverQueue]; subscriptionManager = messagePump.Subscriptions; await messagePump.Initialize(new PushRuntimeSettings(MaximumConcurrency), (messageContext, cancellationToken) => { receivedMessages.Add(new IncomingMessage(messageContext.NativeMessageId, messageContext.Headers, messageContext.Body), cancellationToken); return(Task.CompletedTask); }, (_, __) => Task.FromResult(ErrorHandleResult.Handled) ); await messagePump.StartReceive(); }