예제 #1
0
 public Task StartAsync(CancellationToken cancellationToken)
 {
     return(_retryPolicy.ExecuteAsync(async() => {
         _queue = await _easyNetQBus.DeclareMessageBusAsync(_messageBus.Value);
         _subscription = ConfigureSubscription(_easyNetQBus, _queue);
     }));
 }
예제 #2
0
        public static async Task <IQueue> DeclareMessageBusAsync(this IAdvancedBus advancedBus, MessageBus messageBus)
        {
            if (messageBus.DeadLetterMessageBus == null)
            {
                return(await advancedBus.QueueDeclareAsync(messageBus.Queue));
            }
            else
            {
                await advancedBus.DeclareMessageBusAsync(messageBus.DeadLetterMessageBus);

                return(await advancedBus.QueueDeclareAsync(messageBus.Queue,
                                                           deadLetterExchange : "",
                                                           deadLetterRoutingKey : messageBus.DeadLetterMessageBus.Queue
                                                           ));
            }
        }
예제 #3
0
        private async Task InitAsync()
        {
            if (_initialized)
            {
                return;
            }

            using (await _initializeLock.AcquireAsync())
            {
                if (_initialized)
                {
                    return;
                }

                await _easyNetQBus.DeclareMessageBusAsync(_messageBus.Value);

                _initialized = true;
            }
        }