/// <summary> /// this is the main entry point for function runtime /// </summary> public static void RegisterProvider(IWorkerStatusProvider provider) { _instance?.Dispose(); _instance = null; if (!Enabled) { AppServiceEventSource.Instance.Warning(AppServiceSettings.SiteName, AppServiceSettings.CurrentStampName, AppServiceSettings.WorkerName, "Runtime scaling is not enabled."); return; } if (provider != null) { AppServiceScaleManager instance = null; try { instance = new AppServiceScaleManager(new AppServiceWorkerInfoProvider(provider)); instance.Start(); // assign _instance = instance; instance = null; } finally { instance?.Dispose(); } } AppServiceEventSource.Instance.Information(AppServiceSettings.SiteName, AppServiceSettings.CurrentStampName, AppServiceSettings.WorkerName, string.Format("Worker status provider is {0}.", provider != null ? "registered" : "unregistered")); }
public AppServiceWorkerInfoProvider(IWorkerStatusProvider provider) { _provider = provider; }