123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using DllEapBll.Services;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using System;
- using System.Threading;
- using System.Threading.Tasks;
- namespace MQMonitor
- {
- class Program
- {
- static void Main(string[] args)
- {
- var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
- var configuration = builder.Build();
- IServiceCollection services = new ServiceCollection();
- services.AddOptions();
- //注入
- //services.Configure<AppConfig>(opts =>
- //{
- // configuration.GetSection("AppConfig").Bind(opts);
- //});
- services.AddTransient<QueuemonitorService>();
- services.AddTransient<IConfiguration>(t =>
- {
- return configuration;
- });
- //构建容器
- IServiceProvider serviceProvider = services.BuildServiceProvider();
- // var config = serviceProvider.GetRequiredService<AppConfig>();
- var config = serviceProvider.GetRequiredService<IConfiguration>();
- int interval = Convert.ToInt32(configuration["Interval"]);
- var checkMysqlInterval = Convert.ToInt32(configuration["MysqlCheckInterval"]);
- Task.Run(() =>
- {
- while (true)
- {
- var service = serviceProvider.GetRequiredService<QueuemonitorService>();
- service.CheckMysqlSlaveState();
- Thread.Sleep(checkMysqlInterval * 60 * 1000);
- }
- });
- while (true)
- {
- var connStr = configuration.GetConnectionString("eap");
- using (IDatabase db = DbFactory.Base(connStr, DatabaseType.MySql))
- {
- var service = serviceProvider.GetRequiredService<QueuemonitorService>();
- service.Monitor(db);
- Thread.Sleep(interval * 60 * 1000);
- }
- }
- }
- }
- }
|