using Cksoft.Data; using Cksoft.Data.Repository; using Cksoft.Unity; using Cksoft.Unity.Log4NetConfig; using DllEapDal; using DllEapDal.OFILM; using Hangfire.Pro; using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; namespace DllEapBll { public class EapDataCollectBll { public static async Task CollectEapData() { EapDataCollectBll bll = new EapDataCollectBll(); bll.DoCollectEapData(); } public static async Task HandleFailCollection() { EapDataCollectBll bll = new EapDataCollectBll(); bll.DoHandledFailCollection(); } public static async Task PushBIStatusData() { EapDataCollectBll bll = new EapDataCollectBll(); bll.DoPushBIStatusData(); } [Mutex("PushBIOutput")] public static async Task PushBIOutput() { EapDataCollectBll bll = new EapDataCollectBll(); bll.DoPushBIOutput(); } public static async Task PushBIFailedStatus() { EapDataCollectBll bll = new EapDataCollectBll(); bll.DoPushFailedBiStatus(); } public void DoCollectEapData() { Console.OutputEncoding = Encoding.Default; Console.WriteLine("开始执行"); IDatabase eapdb = null; try { eapdb = DbFactory.Base("eap"); eapdb.BeginTrans(); var dal = new McaEventStatisticByDayDal(eapdb); string error = string.Empty; if (dal.Async(DateTime.Now, ref error) < 0) { eapdb.Rollback(); Console.WriteLine(error); return; } eapdb.Commit(); Console.WriteLine("汇总成功"); } catch (Exception e) { if (eapdb != null) eapdb.Rollback(); Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); } finally { if (eapdb != null) { eapdb.Close(); } } } public void DoHandledFailCollection() { var connStr = AppConfigurtaionServices.Configuration["eap:ConnectionStrings"]; Task.Run(() => { while (true) { LogHelper.LogFatal("开始处理汇总失败记录---------", "EapAsync", string.Empty); string errorinfo = string.Empty; using (IDatabase db = DbFactory.Base(connStr, DatabaseType.MySql)) { var dal = new McaEventStatisticByDayDal(db); dal.AsyncFails(connStr, DatabaseType.MySql, ref errorinfo); } Thread.Sleep(1000 * 60 * 60); } }); } /// /// 推送欧菲光BI大数据平台需要的数据 /// public void DoPushBIStatusData() { Console.OutputEncoding = Encoding.Default; Console.WriteLine("开始执行"); IDatabase eapdb = null; try { eapdb = DbFactory.Base("eap"); eapdb.BeginTrans(); var dal = new BICollectDal(eapdb); string error = string.Empty; if (dal.CollectMacStatus(ref error) < 0) { eapdb.Rollback(); Console.WriteLine(error); return; } eapdb.Commit(); Console.WriteLine("汇总成功"); } catch (Exception e) { if (eapdb != null) eapdb.Rollback(); Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); } finally { if (eapdb != null) { eapdb.Close(); } } } public void DoPushBIOutput() { Console.OutputEncoding = Encoding.Default; Console.WriteLine("开始执行"); IDatabase eapdb = null; try { eapdb = DbFactory.Base("eap"); eapdb.BeginTrans(); var dal = new BICollectDal(eapdb); string error = string.Empty; Thread.Sleep(120 * 1000); if (dal.CollectOutput(2, ref error) < 0) { eapdb.Rollback(); Console.WriteLine(error); return; } eapdb.Commit(); Console.WriteLine("推送成功"); } catch (Exception e) { if (eapdb != null) eapdb.Rollback(); Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); } finally { if (eapdb != null) { eapdb.Close(); } } } public async void DoPushFailedBiStatus() { Console.OutputEncoding = Encoding.Default; Console.WriteLine("开始执行"); IDatabase eapdb = null; try { eapdb = DbFactory.Base("eap"); eapdb.BeginTrans(); var dal = new BICollectDal(eapdb); string error = string.Empty; if (!await dal.PushFailedDatas(error)) { eapdb.Rollback(); Console.WriteLine(error); return; } eapdb.Commit(); Console.WriteLine("推送成功"); } catch (Exception e) { if (eapdb != null) eapdb.Rollback(); Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); } finally { if (eapdb != null) { eapdb.Close(); } } } } }