コード例 #1
0
        public MessageReceiveBuffer(
            int prefetch,
            int bufferSize,
            TimeSpan readTimeout,
            TimeSpan sqsWaitTime,
            ISqsQueue sqsQueue,
            MiddlewareBase <ReceiveMessagesContext, IList <Message> > sqsMiddleware,
            IMessageMonitor monitor,
            ILogger <IMessageReceiveBuffer> logger,
            IMessageBackoffStrategy messageBackoffStrategy = null)
        {
            _prefetch    = prefetch;
            _bufferSize  = bufferSize;
            _readTimeout = readTimeout;
            _sqsWaitTime = sqsWaitTime;
            if (sqsQueue == null)
            {
                throw new ArgumentNullException(nameof(sqsQueue));
            }
            _sqsQueueReader      = new SqsQueueReader(sqsQueue);
            _sqsMiddleware       = sqsMiddleware ?? throw new ArgumentNullException(nameof(sqsMiddleware));
            _monitor             = monitor ?? throw new ArgumentNullException(nameof(monitor));
            _logger              = logger ?? throw new ArgumentNullException(nameof(logger));
            _backoffStrategyName = messageBackoffStrategy?.GetType()?.Name;

            _channel = Channel.CreateBounded <IQueueMessageContext>(bufferSize);

            if (messageBackoffStrategy != null)
            {
                _requestMessageAttributeNames.Add(MessageSystemAttributeName.ApproximateReceiveCount);
            }
        }
コード例 #2
0
 private async Task When()
 {
     var queueReader = new SqsQueueReader(_queue);
     await SystemUnderTest.DispatchMessageAsync(queueReader.ToMessageContext(_sqsMessage), CancellationToken.None);
 }
コード例 #3
0
 /// <summary>
 /// A handle for a given message to be deleted from the queue it was read from.
 /// </summary>
 /// <param name="message">The <see cref="Amazon.SQS.Model.Message"/> to be handled.</param>
 /// <param name="queueReader">The <see cref="SqsQueueReader"/> the message was read from.</param>
 internal QueueMessageContext(Message message, SqsQueueReader queueReader)
 {
     Message      = message ?? throw new ArgumentNullException(nameof(message));
     _queueReader = queueReader ?? throw new ArgumentNullException(nameof(queueReader));
 }