using Cksoft.Data; using Cksoft.Data.Repository; using Cksoft.Unity; using DllEapDal.OFILM; using Microsoft.Extensions.Configuration; using Quartz; using System; using System.Threading; using System.Threading.Tasks; namespace BIOutputPush { public class PushOutputJob : IJob { public Task Execute(IJobExecutionContext context) { var delay = Convert.ToInt32(AppConfigurtaionServices.Configuration["Delay"]); var connStr = AppConfigurtaionServices.Configuration.GetConnectionString("eap"); NLog.ILogger logger = NLog.LogManager.LoadConfiguration("NLog.config").GetCurrentClassLogger(); logger.Fatal($"Delay:{delay}"); return Task.Run(() => { Thread.Sleep(delay * 60 * 1000); try { using (IDatabase db = DbFactory.Base(connStr, DatabaseType.MySql)) { try { string errorinfo = string.Empty; var dal = new BICollectDal(db); db.BeginTrans(); var res = dal.CollectOutput(delay, 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()}"); } } } catch (Exception ex) { logger.Error(ex.Message); } }); } } }