public static IWebHostBuilder UseAnnoSvc(this IWebHostBuilder hostBuilder) { if (hostBuilder == null) { throw new ArgumentNullException(nameof(hostBuilder)); } // 检查是否已经加载过了 if (hostBuilder.GetSetting(nameof(UseAnnoSvc)) != null) { return(hostBuilder); } // 设置已加载标记,防止重复加载 hostBuilder.UseSetting(nameof(UseAnnoSvc), true.ToString()); // 添加configure处理 hostBuilder.ConfigureServices(services => { var configuration = services.BuildServiceProvider().GetRequiredService <IConfiguration>(); ViperConfig viperConfig = new ViperConfig(); configuration.Bind(viperConfig); services.AddSingleton <ViperConfig>(viperConfig); services.AddSingleton <IStartupFilter>(new AnnoSetupFilter(viperConfig)); }); return(hostBuilder); }
public TaskManager(IHubContext <MonitorHub> monitorHub, ViperConfig _viperConfig) { viperConfig = _viperConfig; if (CronDaemon.Status == DaemonStatus.Stop) { lock (LockCron) { if (CronDaemon.Status == DaemonStatus.Stop) { _monitorContext = monitorHub; CronDaemon.AddJob("*/2 * * * * ? *", SendMonitorData); CronDaemon.Start(); } } } }
public AnnoSetupFilter(ViperConfig _viperConfig) { CronDaemon.AddJob("1 */10 * * * ? *", ClearLimit); CronDaemon.Start(); this.vierConfig = _viperConfig; }