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);
        }
Exemplo n.º 2
0
 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;
 }