示例#1
0
 public AzureMessageHandlerFactory(IAzureQueueClientFactory queueClientFactory, Func <IMessage <T>, object> processMessageFn, Action <IMessage <T>, Exception> processExceptionFn, MessageHandlerSettings settings)
 {
     this.queueClientFactory = queueClientFactory;
     this.processMessageFn   = processMessageFn;
     this.processExceptionFn = processExceptionFn;
     this.settings           = settings;
 }
示例#2
0
        public AzureMessageHandler(IAzureQueueClientFactory queueClientFactory, Func <IMessage <T>, object> processMessageFn, Action <IMessage <T>, Exception> processExceptionFn, MessageHandlerSettings settings)
        {
            this.queueClientFactory = queueClientFactory;
            this.processMessageFn   = processMessageFn;
            this.processExceptionFn = processExceptionFn;
            this.settings           = settings;

            retryCount = settings.NoOfRetries;

            QueueName = typeof(T).QueueName();
        }
        public void RegisterHandler <T>(Func <IMessage <T>, object> processMessageFn, Action <IMessage <T>, Exception> processExceptionEx, MessageHandlerSettings settings = null)
        {
            var type = typeof(T);

            if (handlerMap.ContainsKey(type))
            {
                throw new ArgumentException("Message handler has already been registered for type: " + type.Name);
            }

            RegisteredTypes.Add(type);

            if (settings == null)
            {
                settings = new MessageHandlerSettings();
            }

            handlerMap[type]            = CreateMessageHandlerFactory(processMessageFn, processExceptionEx, settings);
            handlerThreadCountMap[type] = settings.NoOfThreads;
        }
 protected IAzureMessageHandlerFactory CreateMessageHandlerFactory <T>(Func <IMessage <T>, object> processMessageFn, Action <IMessage <T>, Exception> processExceptionEx, MessageHandlerSettings settings)
 {
     return(new AzureMessageHandlerFactory <T>(queueClientFactory, processMessageFn, processExceptionEx, settings)
     {
         RequestFilter = RequestFilter,
         ResponseFilter = ResponseFilter,
         RetryCount = RetryCount,
     });
 }
 public void RegisterHandler <T>(Func <IMessage <T>, object> processMessageFn, MessageHandlerSettings settings)
 {
     RegisterHandler(processMessageFn, null, settings);
 }