123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using Cksoft.Unity;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Quartz;
- using Quartz.Impl;
- using System;
- namespace BIOutputPush
- {
- class Program
- {
- static void Main(string[] args)
- {
- var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
- var configuration = builder.Build();
- IServiceCollection services = new ServiceCollection();
- services.AddOptions();
- NLog.ILogger logger = NLog.LogManager.LoadConfiguration("NLog.config").GetCurrentClassLogger();
- logger.Fatal("服务启动成功");
-
- //注入
- //services.Configure<AppConfig>(opts =>
- //{
- // configuration.GetSection("AppConfig").Bind(opts);
- //});
- //services.AddTransient<>();
- 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 connStr = configuration.GetConnectionString("eap");
- AppConfigurtaionServices.Configuration = configuration;
- //创建一个作业调度池
- ISchedulerFactory schedf = new StdSchedulerFactory();
- IScheduler sched = schedf.GetScheduler().Result;
- //开始运行
- sched.Start();
- //创建出一个具体的作业
- IJobDetail job = JobBuilder.Create<PushOutputJob>().Build(); //配置一个触发器
- //创建出一个具体的作业
- var cron = $"0 */10 * * * ?"; //创建触发器
- ITrigger trigger = TriggerBuilder.Create()
- .WithIdentity("trigger1", "group1")
- .StartNow()
- .WithCronSchedule(cron)
- .Build();
- //加入作业调度池中
- sched.ScheduleJob(job, trigger).Wait();
- logger.Fatal("服务启动完成");
- while (true)
- {
- logger.Fatal("服务正在运行");
- System.Threading.Thread.Sleep(1000 * 3600);
- }
- //while (true)
- //{
- // if (DateTime.Now.Minute % 10 == 0)
- // {
- // Task.Run(() =>
- // {
- // using (IDatabase db = DbFactory.Base(connStr, DatabaseType.MySql))
- // {
- // try
- // {
- // string errorinfo = string.Empty;
- // var dal = new BICollectDal(db);
- // db.BeginTrans();
- // var res = dal.CollectOutput(ref errorinfo);
- // if (res > 0)
- // {
- // db.Commit();
- // logger.Fatal("推送BI产量数据成功");
- // }
- // else
- // {
- // db.Rollback();
- // logger.Error($"推送BI产量数据失败,原因为:{errorinfo}");
- // }
- // }
- // catch (Exception ex)
- // {
- // if (db != null)
- // db.Rollback();
- // logger.Error($"推送BI产量数据失败,原因为:{ex.ToString()}");
- // }
- // }
- // });
- // }
- // Thread.Sleep(30 * 1000);
- //}
- }
- }
- }
|