public HttpFunctionInvocationDispatcher(IOptions <ScriptJobHostOptions> scriptHostOptions, IMetricsLogger metricsLogger, IScriptJobHostEnvironment scriptJobHostEnvironment, IScriptEventManager eventManager, ILoggerFactory loggerFactory, IHttpWorkerChannelFactory httpWorkerChannelFactory) { _metricsLogger = metricsLogger; _scriptOptions = scriptHostOptions.Value; _scriptJobHostEnvironment = scriptJobHostEnvironment; _eventManager = eventManager; _logger = loggerFactory.CreateLogger <HttpFunctionInvocationDispatcher>(); _httpWorkerChannelFactory = httpWorkerChannelFactory ?? throw new ArgumentNullException(nameof(httpWorkerChannelFactory)); State = FunctionInvocationDispatcherState.Default; _workerErrorSubscription = _eventManager.OfType <HttpWorkerErrorEvent>() .Subscribe(WorkerError); _workerRestartSubscription = _eventManager.OfType <HttpWorkerRestartEvent>() .Subscribe(WorkerRestart); }
public FunctionInvocationDispatcherFactory(IOptions <ScriptJobHostOptions> scriptHostOptions, IMetricsLogger metricsLogger, IApplicationLifetime applicationLifetime, IScriptEventManager eventManager, ILoggerFactory loggerFactory, IHttpWorkerChannelFactory httpWorkerChannelFactory, IRpcWorkerChannelFactory rpcWorkerChannelFactory, IOptions <HttpWorkerOptions> httpWorkerOptions, IOptionsMonitor <LanguageWorkerOptions> rpcWorkerOptions, IEnvironment environment, IWebHostRpcWorkerChannelManager webHostLanguageWorkerChannelManager, IJobHostRpcWorkerChannelManager jobHostLanguageWorkerChannelManager, IOptions <ManagedDependencyOptions> managedDependencyOptions, IRpcFunctionInvocationDispatcherLoadBalancer functionDispatcherLoadBalancer, IOptions <WorkerConcurrencyOptions> workerConcurrencyOptions) { if (httpWorkerOptions.Value == null) { throw new ArgumentNullException(nameof(httpWorkerOptions.Value)); } if (httpWorkerOptions.Value.Description != null) { _functionDispatcher = new HttpFunctionInvocationDispatcher(scriptHostOptions, metricsLogger, applicationLifetime, eventManager, loggerFactory, httpWorkerChannelFactory); return; } _functionDispatcher = new RpcFunctionInvocationDispatcher(scriptHostOptions, metricsLogger, environment, applicationLifetime, eventManager, loggerFactory, rpcWorkerChannelFactory, rpcWorkerOptions, webHostLanguageWorkerChannelManager, jobHostLanguageWorkerChannelManager, managedDependencyOptions, functionDispatcherLoadBalancer, workerConcurrencyOptions); }