public ServiceBusOrchestrationService()

in src/DurableTask.ServiceBus/ServiceBusOrchestrationService.cs [172:237]


        public ServiceBusOrchestrationService(
            ServiceBusConnectionSettings connectionSettings,
            string hubName,
            IOrchestrationServiceInstanceStore instanceStore,
            IOrchestrationServiceBlobStore blobStore,
            ServiceBusOrchestrationServiceSettings settings)
        {
            this.connectionSettings = connectionSettings;
            this.hubName = hubName;
            this.ServiceStats = new ServiceBusOrchestrationServiceStats();

            this.workerEntityName = string.Format(ServiceBusConstants.WorkerEndpointFormat, this.hubName);
            this.orchestratorEntityName = string.Format(ServiceBusConstants.OrchestratorEndpointFormat, this.hubName);
            this.trackingEntityName = string.Format(ServiceBusConstants.TrackingEndpointFormat, this.hubName);

            if (!string.IsNullOrEmpty(connectionSettings.ConnectionString))
            {
                var sbConnectionStringBuilder = new ServiceBusConnectionStringBuilder(connectionSettings.ConnectionString);
#if NETSTANDARD2_0
                this.serviceBusConnection = new ServiceBusConnection(sbConnectionStringBuilder);
#else
                this.serviceBusConnection = new ServiceBusConnection(sbConnectionStringBuilder)
                {
                    TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(sbConnectionStringBuilder.SasKeyName,
                        sbConnectionStringBuilder.SasKey, ServiceBusUtils.TokenTimeToLive),
                };
#endif
            }
#if NETSTANDARD2_0
            else if (connectionSettings.Endpoint != null && connectionSettings.TokenCredential != null)
            {

                this.serviceBusConnection = new ServiceBusConnection(connectionSettings.Endpoint.Host, connectionSettings.TransportType, connectionSettings.TokenCredential);
            }
#endif
            else
            {
                throw new ArgumentException("Invalid Service Bus connection settings.", nameof(connectionSettings));
            }

            this.Settings = settings ?? new ServiceBusOrchestrationServiceSettings();
            this.orchestratorBatchMessageSender = new MessageSender(this.serviceBusConnection, this.orchestratorEntityName);


            this.BlobStore = blobStore;
            if (instanceStore != null)
            {
                this.InstanceStore = instanceStore;
                this.trackingDispatcher = new WorkItemDispatcher<TrackingWorkItem>(
                    "TrackingDispatcher",
                    item => item == null ? string.Empty : item.InstanceId,
                    FetchTrackingWorkItemAsync,
                    ProcessTrackingWorkItemAsync)
                {
                    GetDelayInSecondsAfterOnFetchException = GetDelayInSecondsAfterOnFetchException,
                    GetDelayInSecondsAfterOnProcessException = GetDelayInSecondsAfterOnProcessException,
                    DispatcherCount = this.Settings.TrackingDispatcherSettings.DispatcherCount,
                    MaxConcurrentWorkItems = this.Settings.TrackingDispatcherSettings.MaxConcurrentTrackingSessions
                };

                if (this.Settings.JumpStartSettings.JumpStartEnabled)
                {
                    this.jumpStartManager = new JumpStartManager(this, this.Settings.JumpStartSettings.Interval, this.Settings.JumpStartSettings.IgnoreWindow);
                }
            }
        }