123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using Cksoft.Unity.Log4NetConfig;
- using DllEapDal;
- using DllEapEntity;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.Configuration.Json;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace DllEapBll.Services
- {
- public class EapAsyncService
- {
- public void DoCollectEapData()
- {
- Console.OutputEncoding = Encoding.Default;
- LogHelper<McaEventStatisticByDayDal>.LogFatal("开始执行=====", "EapAsync", string.Empty);
- var builder = new ConfigurationBuilder()
- .Add(new JsonConfigurationSource
- {
- Path = "appsettings.json",
- ReloadOnChange = true
- })
- .Build();
- IConfigurationSection dbSection = builder.GetSection("eap");
- var conn = dbSection.GetValue<string>("ConnectionStrings");
- var timeSpan = builder.GetValue<int>("timespan");
- // var conn = "Server=127.0.0.1;Port=3306;Database=eap;Uid=root;Pwd=zhangxize;Charset=utf8;";
- while (true)
- {
- Task.Run(() =>
- {
- IDatabase eapdb = null;
- var history = new EapAsyncHistory()
- {
- AsyncTime = DateTime.Now,
- IsSuccess = 1,
- Remark = string.Empty
- };
- try
- {
- eapdb = DbFactory.Base(conn, DatabaseType.MySql);
- eapdb.BeginTrans();
- var dal = new McaEventStatisticByDayDal(eapdb);
- string error = string.Empty;
- if (dal.Async(DateTime.Now, ref error) < 0)
- {
- eapdb.Rollback();
- LogHelper<McaEventStatisticByDayDal>.LogError(error, "EapAsync", string.Empty);
- history.IsSuccess = -1;
- history.Remark = error;
- InsertHistory(history);
- return;
- }
- eapdb.Commit();
- InsertHistory(history);
- LogHelper<McaEventStatisticByDayDal>.LogError("汇总成功", "EapAsync", string.Empty);
- }
- catch (Exception e)
- {
- if (eapdb != null)
- eapdb.Rollback();
- LogHelper<McaEventStatisticByDayDal>.LogError(e.Message, "EapAsync", string.Empty);
- LogHelper<McaEventStatisticByDayDal>.LogError(e.StackTrace, "EapAsync", string.Empty);
- history.IsSuccess = -1;
- history.Remark = e.Message;
- InsertHistory(history);
- }
- finally
- {
- if (eapdb != null)
- {
- eapdb.Close();
- }
- }
- });
- Task.Run(() =>
- {
- IDatabase db = null;
- try
- {
- db = DbFactory.Base(conn, DatabaseType.MySql);
- db.BeginTrans();
- var historyDal = new EapAsyncHistoryDal(db);
- var fails = historyDal.Get($" and a.issuccess=-1");
- if (fails != null && fails.Count() > 0)
- {
- }
- }
- catch (Exception e)
- {
- }
- });
- Thread.Sleep(timeSpan * 60 * 1000);
- }
- }
- /// <summary>
- /// 新增汇总记录
- /// </summary>
- /// <param name="history"></param>
- private void InsertHistory(EapAsyncHistory history)
- {
- var builder = new ConfigurationBuilder()
- .Add(new JsonConfigurationSource
- {
- Path = "appsettings.json",
- ReloadOnChange = true
- })
- .Build();
- IConfigurationSection dbSection = builder.GetSection("eap");
- var conn = dbSection.GetValue<string>("ConnectionStrings");
- using (IDatabase db = DbFactory.Base(conn, DatabaseType.MySql))
- {
- var dal = new EapAsyncHistoryDal(db);
- string errorinfo = string.Empty;
- if (dal.Insert(history, ref errorinfo) < 0)
- {
- LogHelper<EapAsyncService>.LogError("新增汇总历史记录失败", "EapAsync", string.Empty);
- }
- }
- }
- }
- }
|