Exemplo n.º 1
0
        internal TaskOrchestrationDispatcher(MessagingFactory messagingFactory,
                                             TrackingDispatcher trackingDispatcher,
                                             TaskHubDescription taskHubDescription,
                                             TaskHubWorkerSettings workerSettings,
                                             string orchestratorEntityName,
                                             string workerEntityName,
                                             string trackingEntityName,
                                             NameVersionObjectManager <TaskOrchestration> objectManager)
            : base("TaskOrchestration Dispatcher", item => item.Session == null ? string.Empty : item.Session.SessionId)
        {
            this.taskHubDescription = taskHubDescription;
            settings = workerSettings.Clone();
            this.orchestratorEntityName         = orchestratorEntityName;
            this.workerEntityName               = workerEntityName;
            this.trackingEntityName             = trackingEntityName;
            this.messagingFactory               = messagingFactory;
            this.messagingFactory.PrefetchCount = PrefetchCount;
            this.objectManager      = objectManager;
            orchestratorQueueClient = this.messagingFactory.CreateQueueClient(this.orchestratorEntityName);
            workerSender            = this.messagingFactory.CreateMessageSender(this.workerEntityName, this.orchestratorEntityName);

            trackingDipatcher = trackingDispatcher;
            if (trackingDipatcher != null)
            {
                isTrackingEnabled = true;
                trackingSender    = this.messagingFactory.CreateMessageSender(this.trackingEntityName,
                                                                              this.orchestratorEntityName);
            }
            maxConcurrentWorkItems = settings.TaskOrchestrationDispatcherSettings.MaxConcurrentOrchestrations;
        }
 internal TaskActivityDispatcher(MessagingFactory messagingFactory,
                                 TaskHubDescription taskHubDescription,
                                 TaskHubWorkerSettings workerSettings,
                                 string orchestratorQueueName,
                                 string workerQueueName,
                                 NameVersionObjectManager <TaskActivity> objectManager)
     : base("TaskActivityDispatcher", item => item.MessageId)
 {
     this.taskHubDescription = taskHubDescription;
     settings = workerSettings.Clone();
     this.orchestratorQueueName = orchestratorQueueName;
     this.workerQueueName       = workerQueueName;
     this.messagingFactory      = messagingFactory;
     this.objectManager         = objectManager;
     maxConcurrentWorkItems     = settings.TaskActivityDispatcherSettings.MaxConcurrentActivities;
 }