예제 #1
0
 public DefaultCommandProcessor(IProcessingCommandScheduler scheduler, IProcessingCommandHandler handler, ILoggerFactory loggerFactory)
 {
     _mailboxDict = new ConcurrentDictionary<string, ProcessingCommandMailbox>();
     _scheduler = scheduler;
     _handler = handler;
     _logger = loggerFactory.Create(GetType().FullName);
 }
예제 #2
0
 public DefaultCommandProcessor(IProcessingCommandScheduler scheduler, IProcessingCommandHandler handler, ILoggerFactory loggerFactory)
 {
     _mailboxDict = new ConcurrentDictionary <string, ProcessingCommandMailbox>();
     _scheduler   = scheduler;
     _handler     = handler;
     _logger      = loggerFactory.Create(GetType().FullName);
 }
예제 #3
0
 public ProcessingCommandMailbox(string aggregateRootId, IProcessingCommandHandler messageHandler, ILogger logger)
 {
     _messageDict    = new ConcurrentDictionary <long, ProcessingCommand>();
     _messageHandler = messageHandler;
     _logger         = logger;
     _batchSize      = ENodeConfiguration.Instance.Setting.CommandMailBoxProcessBatchSize;
     AggregateRootId = aggregateRootId;
     LastActiveTime  = DateTime.Now;
 }
예제 #4
0
 public DefaultCommandProcessor(IScheduleService scheduleService, IProcessingCommandHandler handler, ILoggerFactory loggerFactory)
 {
     _scheduleService = scheduleService;
     _mailboxDict     = new ConcurrentDictionary <string, ProcessingCommandMailbox>();
     _handler         = handler;
     _logger          = loggerFactory.Create(GetType().FullName);
     _timeoutSeconds  = ENodeConfiguration.Instance.Setting.AggregateRootMaxInactiveSeconds;
     _taskName        = "CleanInactiveProcessingCommandMailBoxes_" + DateTime.Now.Ticks + new Random().Next(10000);
 }
예제 #5
0
 public ProcessingCommandMailbox(string aggregateRootId, IProcessingCommandScheduler scheduler, IProcessingCommandHandler messageHandler, ILogger logger)
 {
     _messageDict = new ConcurrentDictionary <long, ProcessingCommand>();
     _requestToCompleteOffsetDict = new Dictionary <long, CommandResult>();
     _aggregateRootId             = aggregateRootId;
     _scheduler      = scheduler;
     _messageHandler = messageHandler;
     _logger         = logger;
     _consumedOffset = -1;
 }
예제 #6
0
 public ProcessingCommandMailbox(string aggregateRootId, IProcessingCommandScheduler scheduler, IProcessingCommandHandler messageHandler, ILogger logger)
 {
     _messageDict = new ConcurrentDictionary<long, ProcessingCommand>();
     _requestToCompleteOffsetDict = new Dictionary<long, CommandResult>();
     _aggregateRootId = aggregateRootId;
     _scheduler = scheduler;
     _messageHandler = messageHandler;
     _logger = logger;
     _consumedOffset = -1;
 }
예제 #7
0
 public ProcessingCommandMailbox(string aggregateRootId, IProcessingCommandHandler messageHandler, ILogger logger)
 {
     _messageDict = new ConcurrentDictionary <long, ProcessingCommand>();
     _requestToCompleteCommandDict = new Dictionary <long, CommandResult>();
     _pauseWaitHandle      = new ManualResetEvent(false);
     _processingWaitHandle = new ManualResetEvent(false);
     _batchSize            = ENodeConfiguration.Instance.Setting.CommandMailBoxPersistenceMaxBatchSize;
     AggregateRootId       = aggregateRootId;
     _messageHandler       = messageHandler;
     _logger           = logger;
     _consumedSequence = -1;
     LastActiveTime    = DateTime.Now;
 }
예제 #8
0
 public ProcessingCommandQueue(
     string aggregateRootId,
     IProcessingCommandHandler handler,
     ICommandExecutedResultProcessor executedResultProcessor,
     ILogger <ProcessingCommandQueue> logger)
 {
     this.aggregateRootId         = aggregateRootId;
     this.handler                 = handler;
     this.executedResultProcessor = executedResultProcessor;
     this.logger      = logger;
     queue            = new ConcurrentDictionary <long, ProcessingCommand>();
     waitingQueue     = new ConcurrentDictionary <long, CommandExecutedResult>();
     pausingHandle    = new ManualResetEvent(false);
     processingHandle = new ManualResetEvent(false);
     syncLock         = new object();
     asyncLock        = new AsyncLock();
     previousSequence = -1;
     lastActiveOn     = DateTime.UtcNow;
 }
 public ProcessingCommandQueueFactory(IProcessingCommandHandler handler, ICommandExecutedResultProcessor executedResultProcessor, ILoggerFactory loggerFactory)
 {
     this.handler = handler;
     this.executedResultProcessor = executedResultProcessor;
     this.loggerFactory           = loggerFactory;
 }
예제 #10
0
 public ProcessingCommandMailbox(string aggregateRootId, IProcessingCommandHandler messageHandler, ILogger logger)
     : base(aggregateRootId, ENodeConfiguration.Instance.Setting.CommandMailBoxPersistenceMaxBatchSize, false, (x => messageHandler.Handle(x)), null, logger)
 {
 }
예제 #11
0
 public void SetProcessingCommandHandler(IProcessingCommandHandler processingCommandHandler)
 {
     _processingCommandHandler = processingCommandHandler;
 }
예제 #12
0
 public void SetProcessingCommandHandler(IProcessingCommandHandler processingCommandHandler)
 {
     _processingCommandHandler = processingCommandHandler;
 }