public RtqConsumer(IRtqConsumerSettings consumerSettings, IRtqPeriodicJobRunner periodicJobRunner, IRtqTaskHandlerRegistry taskHandlerRegistry, RemoteTaskQueue remoteTaskQueue) { this.consumerSettings = consumerSettings; this.periodicJobRunner = periodicJobRunner; RtqInternals = remoteTaskQueue; var localQueueTaskCounter = new LocalQueueTaskCounter(consumerSettings.MaxRunningTasksCount, consumerSettings.MaxRunningContinuationsCount); localTaskQueue = new LocalTaskQueue(localQueueTaskCounter, taskHandlerRegistry, remoteTaskQueue); foreach (var taskTopic in taskHandlerRegistry.GetAllTaskTopicsToHandle()) { var handlerManager = new HandlerManager(remoteTaskQueue.QueueKeyspace, taskTopic, consumerSettings.MaxRunningTasksCount, localTaskQueue, remoteTaskQueue.HandleTasksMetaStorage, remoteTaskQueue.GlobalTime, remoteTaskQueue.Logger); handlerManagers.Add(handlerManager); } reportConsumerStateToGraphitePeriodicJob = new ReportConsumerStateToGraphitePeriodicJob(remoteTaskQueue.QueueKeyspace, remoteTaskQueue.Profiler, handlerManagers); logger = remoteTaskQueue.Logger.ForContext(nameof(RtqConsumer)); }
void IRtqInternals.AttachLocalTaskQueue([NotNull] LocalTaskQueue localTaskQueueInstance) { localTaskQueue = localTaskQueueInstance; }