Ejemplo n.º 1
0
        public async Task MoveToQueue(RawQueueMessage rawQueueMessage)
        {
            if (rawQueueMessage == null)
            {
                throw new ArgumentNullException(nameof(rawQueueMessage));
            }

            await SemaphoreSlim.WaitAsync();

            try
            {
                await PostMessage(rawQueueMessage.Body, _queueName, true);

                await _client.Messages4Async(
                    _deadLetterQueueName,
                    rawQueueMessage.Id,
                    _token,
                    new DeleteMessageRequest
                {
                    Reservation_id = rawQueueMessage.ReservationId
                });
            }
            finally
            {
                SemaphoreSlim.Release();
            }
        }
Ejemplo n.º 2
0
        public async Task ReleaseMessage(RawQueueMessage rawQueueMessage)
        {
            if (rawQueueMessage == null)
            {
                throw new ArgumentNullException(nameof(rawQueueMessage));
            }

            await SemaphoreSlim.WaitAsync();

            try
            {
                await _client.ReleaseAsync(
                    _queueName,
                    rawQueueMessage.Id,
                    _token,
                    new ReleaseMessageRequest
                {
                    Reservation_id = rawQueueMessage.ReservationId
                });
            }
            finally
            {
                SemaphoreSlim.Release();
            }
        }