public ExactlyOnceHandler(IHandlerAsync <T> inner, IMessageLockAsync messageLock, int timeOut, string handlerName)
 {
     _inner       = inner;
     _messageLock = messageLock;
     _timeOut     = timeOut;
     _handlerName = handlerName;
 }
Beispiel #2
0
        public SqsNotificationListener(
            SqsQueueBase queue,
            IMessageSerializationRegister serializationRegister,
            IMessageMonitor messagingMonitor,
            ILoggerFactory loggerFactory,
            IMessageContextAccessor messageContextAccessor,
            Action <Exception, Amazon.SQS.Model.Message> onError = null,
            IMessageLockAsync messageLock = null,
            IMessageBackoffStrategy messageBackoffStrategy = null)
        {
            _queue            = queue;
            _messagingMonitor = messagingMonitor;
            onError           = onError ?? DefaultErrorHandler;
            _log = loggerFactory.CreateLogger("JustSaying");

            _messageProcessingStrategy = new DefaultThrottledThroughput(_messagingMonitor);
            _messageHandlerWrapper     = new MessageHandlerWrapper(messageLock, _messagingMonitor);

            _messageDispatcher = new MessageDispatcher(
                _queue,
                serializationRegister,
                messagingMonitor,
                onError,
                _handlerMap,
                loggerFactory,
                messageBackoffStrategy,
                messageContextAccessor);

            Subscribers = new Collection <ISubscriber>();

            if (messageBackoffStrategy != null)
            {
                _requestMessageAttributeNames.Add(MessageSystemAttributeName.ApproximateReceiveCount);
            }
        }
 public ExactlyOnceHandler(IHandlerAsync <T> inner, IMessageLockAsync messageLock, TimeSpan timeout, string handlerName)
 {
     _inner                   = inner;
     _messageLock             = messageLock;
     _timeout                 = timeout;
     _lockSuffixKeyForHandler = $"{typeof(T).ToString().ToLowerInvariant()}-{handlerName}";
 }
Beispiel #4
0
    public ExactlyOnceMiddleware(IMessageLockAsync messageLock, TimeSpan timeout, string handlerName, ILogger logger)
    {
        _messageLock = messageLock;
        _timeout     = timeout;
        _logger      = logger;

        _lockSuffixKeyForHandler = $"{typeof(T).FullName.ToLowerInvariant()}-{handlerName}";
    }
 public MessageHandlerWrapper(
     IMessageLockAsync messageLock,
     IMessageMonitor messagingMonitor,
     ILoggerFactory loggerFactory)
 {
     _messageLock      = messageLock;
     _messagingMonitor = messagingMonitor;
     _loggerFactory    = loggerFactory;
 }
 public MessageHandlerWrapper(IMessageLockAsync messageLock, IMessageMonitor messagingMonitor)
 {
     _messageLock      = messageLock;
     _messagingMonitor = messagingMonitor;
 }
Beispiel #7
0
 public IMayWantOptionalSettings WithMessageLockStoreOf(IMessageLockAsync messageLock)
 {
     Bus.MessageLock = messageLock;
     return(this);
 }