public void StartBackgroundServices()
        {
            using (_Logger.LogScope(LogLevel.Debug, "Starting background services"))
            {
                lock (_Lock)
                {
                    if (_Tasks.Any())
                    {
                        return;
                    }

                    foreach (IBackgroundService backgroundService in _BackgroundServices)
                    {
                        Type backgroundServiceType = backgroundService.GetType();
                        IFeatureToggleWithDefault featureToggle =
                            _FeatureToggles.GetByKey($"Services/{backgroundServiceType.FullName}").WithDefault(true);

                        var monitor = new BackgroundServiceMonitor(
                            featureToggle, backgroundService, _ApplicationLifetimeManager, _Logger, _TypeHelper);

                        _Tasks.Add(monitor.RunAsync());
                    }
                }
            }
        }
Exemplo n.º 2
0
 public static bool?IsEnabled([NotNull] this IFeatureToggles featureToggles, [NotNull] string key)
 => featureToggles.GetByKey(key).IsEnabled;