// Specify the "builtin binding types". These are types that are directly accesible without needing an explicit load gesture. // This is the set of bindings we shipped prior to binding extensibility. // Map from BindingType to the Assembly Qualified Type name for its IExtensionConfigProvider object. public ScriptHost(IOptions <JobHostOptions> options, IOptions <LanguageWorkerOptions> languageWorkerOptions, IEnvironment environment, IJobHostContextFactory jobHostContextFactory, IConfiguration configuration, IDistributedLockManager distributedLockManager, IScriptEventManager eventManager, ILoggerFactory loggerFactory, IFunctionMetadataManager functionMetadataManager, IProxyMetadataManager proxyMetadataManager, IMetricsLogger metricsLogger, IOptions <ScriptJobHostOptions> scriptHostOptions, ITypeLocator typeLocator, IScriptJobHostEnvironment scriptHostEnvironment, IDebugStateProvider debugManager, IEnumerable <IScriptBindingProvider> bindingProviders, IPrimaryHostStateProvider primaryHostStateProvider, IJobHostMetadataProvider metadataProvider, IHostIdProvider hostIdProvider, ScriptSettingsManager settingsManager = null) : base(options, jobHostContextFactory) { _environment = environment; _typeLocator = typeLocator as ScriptTypeLocator ?? throw new ArgumentException(nameof(typeLocator), $"A {nameof(ScriptTypeLocator)} instance is required."); _instanceId = Guid.NewGuid().ToString(); _hostOptions = options; _configuration = configuration; _storageConnectionString = configuration.GetWebJobsConnectionString(ConnectionStringNames.Storage); _distributedLockManager = distributedLockManager; _functionMetadataManager = functionMetadataManager; _hostIdProvider = hostIdProvider; _proxyMetadataManager = proxyMetadataManager; _workerConfigs = languageWorkerOptions.Value.WorkerConfigs; ScriptOptions = scriptHostOptions.Value; _scriptHostEnvironment = scriptHostEnvironment; FunctionErrors = new Dictionary <string, ICollection <string> >(StringComparer.OrdinalIgnoreCase); EventManager = eventManager; _settingsManager = settingsManager ?? ScriptSettingsManager.Instance; _metricsLogger = metricsLogger; _hostLogPath = Path.Combine(ScriptOptions.RootLogPath, "Host"); _currentRuntimelanguage = _environment.GetEnvironmentVariable(LanguageWorkerConstants.FunctionWorkerRuntimeSettingName); _loggerFactory = loggerFactory; _logger = loggerFactory.CreateLogger(LogCategories.Startup); Logger = _logger; _debugManager = debugManager; _primaryHostStateProvider = primaryHostStateProvider; _bindingProviders = new List <IScriptBindingProvider>(bindingProviders); _metadataProvider = metadataProvider; }
public FunctionFileLoggerProvider(IOptions <ScriptJobHostOptions> scriptOptions, IFileLoggingStatusManager fileLoggingStatusManager, IPrimaryHostStateProvider primaryHostStateProvider) { _roogLogPath = scriptOptions.Value.RootLogPath; _isFileLoggingEnabled = () => fileLoggingStatusManager.IsFileLoggingEnabled; _isPrimary = () => primaryHostStateProvider.IsPrimary; _hostInstanceId = scriptOptions.Value.InstanceId; }
public FunctionFileLoggerProvider(IOptions <ScriptJobHostOptions> scriptOptions, IFileLoggingStatusManager fileLoggingStatusManager, IPrimaryHostStateProvider primaryHostStateProvider, IFileWriterFactory fileWriterFactory) { _roogLogPath = scriptOptions.Value.RootLogPath; _isFileLoggingEnabled = () => fileLoggingStatusManager.IsFileLoggingEnabled; _isPrimary = () => primaryHostStateProvider.IsPrimary; _hostInstanceId = scriptOptions.Value.InstanceId; _fileWriterFactory = fileWriterFactory ?? throw new ArgumentNullException(nameof(fileWriterFactory)); }
public FunctionsSyncService(ILoggerFactory loggerFactory, IScriptHostManager scriptHostManager, IPrimaryHostStateProvider primaryHostStateProvider, IFunctionsSyncManager functionsSyncManager) { ArgumentNullException.ThrowIfNull(loggerFactory); DueTime = 30 * 1000; _scriptHostManager = scriptHostManager; _primaryHostStateProvider = primaryHostStateProvider; _functionsSyncManager = functionsSyncManager; _logger = loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral); }
public ChangeAnalysisService(ILogger <ChangeAnalysisService> logger, IEnvironment environment, IChangeAnalysisStateProvider changeAnalysisStateProvider, IPrimaryHostStateProvider hostStateProvider) { _environment = environment; _hostStateProvider = hostStateProvider; _changeAnalysisStateProvider = changeAnalysisStateProvider; _logger = logger; _analysisSemaphore = new SemaphoreSlim(1, 1); _cancellationTokenSource = new CancellationTokenSource(); }
public FunctionsScaleMonitorService(IScaleMonitorManager monitorManager, IScaleMetricsRepository metricsRepository, IPrimaryHostStateProvider primaryHostStateProvider, IEnvironment environment, ILoggerFactory loggerFactory, IOptions <ScaleOptions> scaleOptions) { _monitorManager = monitorManager; _metricsRepository = metricsRepository; _primaryHostStateProvider = primaryHostStateProvider; _environment = environment; _logger = loggerFactory.CreateLogger <FunctionsScaleMonitorService>(); _scaleOptions = scaleOptions.Value; _interval = _scaleOptions.ScaleMetricsSampleInterval; _timer = new Timer(OnTimer, null, Timeout.Infinite, Timeout.Infinite); }
public PrimaryHostCoordinator(IOptions <PrimaryHostCoordinatorOptions> coordinatorOptions, IHostIdProvider hostIdProvider, IDistributedLockManager lockManager, ScriptSettingsManager settingsManager, IPrimaryHostStateProvider primaryHostStateProvider, ILoggerFactory loggerFactory) { _leaseTimeout = coordinatorOptions.Value.LeaseTimeout; _hostIdProvider = hostIdProvider; _websiteInstanceId = settingsManager.AzureWebsiteInstanceId; _lockManager = lockManager; if (lockManager == null) { throw new ArgumentNullException(nameof(lockManager)); } // Renew the lease three seconds before it expires _renewalInterval = coordinatorOptions.Value.RenewalInterval ?? _leaseTimeout.Add(TimeSpan.FromSeconds(-3)); // Attempt to acquire a lease every 5 seconds _leaseRetryInterval = TimeSpan.FromSeconds(5); _timer = new Timer(ProcessLeaseTimerTick); _logger = loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral); _primaryHostStateProvider = primaryHostStateProvider; }
// Specify the "builtin binding types". These are types that are directly accesible without needing an explicit load gesture. // This is the set of bindings we shipped prior to binding extensibility. // Map from BindingType to the Assembly Qualified Type name for its IExtensionConfigProvider object. public ScriptHost(IOptions <JobHostOptions> options, IOptions <HttpWorkerOptions> httpWorkerOptions, IEnvironment environment, IJobHostContextFactory jobHostContextFactory, IConfiguration configuration, IDistributedLockManager distributedLockManager, IScriptEventManager eventManager, ILoggerFactory loggerFactory, IFunctionInvocationDispatcherFactory functionDispatcherFactory, IFunctionMetadataManager functionMetadataManager, IFileLoggingStatusManager fileLoggingStatusManager, IMetricsLogger metricsLogger, IOptions <ScriptJobHostOptions> scriptHostOptions, ITypeLocator typeLocator, IScriptHostManager scriptHostManager, IDebugStateProvider debugManager, IEnumerable <IScriptBindingProvider> bindingProviders, IPrimaryHostStateProvider primaryHostStateProvider, IJobHostMetadataProvider metadataProvider, IHostIdProvider hostIdProvider, IHttpRoutesManager httpRoutesManager, IApplicationLifetime applicationLifetime, IExtensionBundleManager extensionBundleManager, ScriptSettingsManager settingsManager = null) : base(options, jobHostContextFactory) { _environment = environment; _typeLocator = typeLocator as ScriptTypeLocator ?? throw new ArgumentException(nameof(typeLocator), $"A {nameof(ScriptTypeLocator)} instance is required."); _instanceId = Guid.NewGuid().ToString(); _hostOptions = options; _configuration = configuration; _storageConnectionString = configuration.GetWebJobsConnectionString(ConnectionStringNames.Storage); _distributedLockManager = distributedLockManager; _functionMetadataManager = functionMetadataManager; _fileLoggingStatusManager = fileLoggingStatusManager; _applicationLifetime = applicationLifetime; _hostIdProvider = hostIdProvider; _httpRoutesManager = httpRoutesManager; _isHttpWorker = httpWorkerOptions.Value.Description != null; ScriptOptions = scriptHostOptions.Value; _scriptHostManager = scriptHostManager; FunctionErrors = new Dictionary <string, ICollection <string> >(StringComparer.OrdinalIgnoreCase); EventManager = eventManager; _functionDispatcher = functionDispatcherFactory.GetFunctionDispatcher(); _settingsManager = settingsManager ?? ScriptSettingsManager.Instance; ExtensionBundleManager = extensionBundleManager; _metricsLogger = metricsLogger; _hostLogPath = Path.Combine(ScriptOptions.RootLogPath, "Host"); _workerRuntime = _environment.GetEnvironmentVariable(RpcWorkerConstants.FunctionWorkerRuntimeSettingName); _loggerFactory = loggerFactory; _logger = loggerFactory.CreateLogger(LogCategories.Startup); Logger = _logger; _debugManager = debugManager; _primaryHostStateProvider = primaryHostStateProvider; _bindingProviders = new List <IScriptBindingProvider>(bindingProviders); _metadataProvider = metadataProvider; _eventSubscriptions.Add(EventManager.OfType <FunctionIndexingEvent>() .Subscribe(evt => { HandleHostError(evt.Exception); })); }