From 4a91e38c8839978e10e0ddf0c447f983227f21f7 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期六, 26 十月 2024 11:14:10 +0800 Subject: [PATCH] 计划任务更新 --- Tiger.Business.MES/Task/TskJob.cs | 20 ++++-- Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs | 73 ++++++++++++------------ Tiger.Business/Services/Base/InterfaceServiceNew.cs | 23 ++++--- Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs | 21 +++++++ 4 files changed, 86 insertions(+), 51 deletions(-) diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs index 9478f22..5086e8d 100644 --- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs +++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs @@ -111,46 +111,47 @@ SaveFluentSchedulerLog(Name, "Failed", ex.Message); } } + }//endClass - public class fTest : TigerJobBase, ITJob + public class fTest : TigerJobBase, ITJob + { + public string Id { get; set; } + public string Tag { get; set; } + public string Name { get; set; } = typeof(fTest).Name; + public fTest() { - public string Id { get; set; } - public string Tag { get; set; } - public string Name { get; set; } - public fTest() - { - Id = Guid.NewGuid().ToString("N"); - Tag = "U9C_MES_GetWo Interface Job"; - Name = "娴嬭瘯鎺ュ彛"; - } + Id = Guid.NewGuid().ToString("N"); + Tag = "U9C_MES_GetWo Interface Job"; + } - public void Execute() + public void Execute() + { + Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n"); + try { - Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n"); - try - { - var _lastRunTime = Biz.SysParam["GetWo_LastRun", "Interface_LastRun"].PARAM_VALUE; - var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-10) : Convert.ToDateTime(_lastRunTime); - //if ((DateTime.Now - LastRunTime).TotalMinutes > 10) - //{ - // GetWoInput input = new GetWoInput - // { - // startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), - // endTime = LastRunTime.AddMinutes(10).ToString("yyyy-MM-dd HH:mm:ss") - // }; - // var result = await DI.Resolve<IU9C_MES>().GetBasWo(input); - // if (!result.IsSuccessed) - // { - // Logger.Scheduler.Error($"鑾峰彇宸ュ崟淇℃伅寮傚父:{result.Message}"); - // } - //} - //SaveFluentSchedulerLog("浠嶶9C鑾峰彇宸ュ崟淇℃伅鎴愬姛"); - Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Name})瀹屾垚\r\n"); - } - catch (System.Exception ex) - { - Logger.Scheduler.Fatal(ex, "鑾峰彇宸ュ崟淇℃伅寮傚父\r\n"); - } + string msg = ""; + string status = "Successed"; + var _lastRunTime = Biz.SysParam["GetWo_LastRun", "Interface_LastRun"].PARAM_VALUE; + var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-10) : Convert.ToDateTime(_lastRunTime); + //if ((DateTime.Now - LastRunTime).TotalMinutes > 10) + //{ + // GetWoInput input = new GetWoInput + // { + // startTime = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), + // endTime = LastRunTime.AddMinutes(10).ToString("yyyy-MM-dd HH:mm:ss") + // }; + // var result = await DI.Resolve<IU9C_MES>().GetBasWo(input); + // if (!result.IsSuccessed) + // { + // Logger.Scheduler.Error($"鑾峰彇宸ュ崟淇℃伅寮傚父:{result.Message}"); + // } + //} + SaveFluentSchedulerLog(Name, status, "娴嬭瘯浠诲姟鎴愬姛"); + Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Name})瀹屾垚\r\n"); + } + catch (System.Exception ex) + { + Logger.Scheduler.Fatal(ex, "娴嬭瘯浠诲姟寮傚父\r\n"); } } } diff --git a/Tiger.Business.MES/Task/TskJob.cs b/Tiger.Business.MES/Task/TskJob.cs index 5215a8e..6c5d1f9 100644 --- a/Tiger.Business.MES/Task/TskJob.cs +++ b/Tiger.Business.MES/Task/TskJob.cs @@ -11,6 +11,7 @@ using FluentScheduler; using Newtonsoft.Json; using static Tiger.Model.TrigArgs; +using System.Reflection; namespace Tiger.Business.MES { @@ -29,12 +30,13 @@ var result = new ApiAction(); try { - var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobName).First()??new() { - JobName = input.JobName, + var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobType).First()??new() { + JobName = input.JobType, JobType = input.JobType, AssemblyName = input.AssemblyName, - Remark = input.Remark, }; + _job.Remark = input.Remark; + //璁″垝浠诲姟鍙傛暟 var Args = new TrigArgs() { @@ -49,23 +51,29 @@ Hours = input.Hours, Days = input.Days, }; - TSK_TRIG tskTrig = new TSK_TRIG() + TSK_TRIG tskTrig = Biz.Db.Queryable<TSK_TRIG>().Where(x => x.JobId == _job.ID).First() ?? new() { JobId = _job.ID, - Args = JsonConvert.SerializeObject(Args), Status = TSK_TRIG.Statuss.Ready.GetValue(), StartTime = DateTime.Now, NumberOfRuns = 1, }; + tskTrig.Args = JsonConvert.SerializeObject(Args); var db = Biz.Db; var dbTran = db.UseTran(() => { var y = db.Storageable(_job) - .WhereColumns(t => new { t.JobName, t.GHOST_ROW }) + .WhereColumns(t => new { t.JobName,t.GHOST_ROW }) .ToStorage(); y.AsInsertable.ExecuteCommand(); y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + + var z = db.Storageable(tskTrig) + .WhereColumns(t => new { t.JobId, t.GHOST_ROW }) + .ToStorage(); + z.AsInsertable.ExecuteCommand(); + z.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); }); if (!dbTran.IsSuccess) { diff --git a/Tiger.Business/Services/Base/InterfaceServiceNew.cs b/Tiger.Business/Services/Base/InterfaceServiceNew.cs index c876b3d..01edbce 100644 --- a/Tiger.Business/Services/Base/InterfaceServiceNew.cs +++ b/Tiger.Business/Services/Base/InterfaceServiceNew.cs @@ -278,24 +278,26 @@ } private void SaveRunningStatus() { - TSK_TRIG trig = new TSK_TRIG(); + List<TSK_TRIG> listTrig = new List<TSK_TRIG>(); foreach (var schedule in JobManager.RunningSchedules) { var job = Biz.Db.Queryable<TSK_JOB>().Where(q => q.JobName == schedule.Name).First(); if (job != null) { + TSK_TRIG trig = new TSK_TRIG(); trig = Biz.Db.Queryable<TSK_TRIG>().Where(q => q.JobId == job.ID).First(); trig.Status = TSK_TRIG.Statuss.Running.GetValue(); trig.StartTime = DateTime.Now; + listTrig.Add(trig); } } var db = Biz.Db; //淇濆瓨鍒版暟鎹簱 var dbTran = db.UseTran(() => { - if (trig != null) + if (listTrig.Count>0) { - db.Updateable(trig, "system").UpdateColumns(q => new { q.Status, q.UPDATE_USER, q.UPDATE_TIME }).ExecuteCommand(); + db.Updateable(listTrig, "system").UpdateColumns(q => new { q.Status, q.UPDATE_USER, q.UPDATE_TIME }).ExecuteCommand(); } }); if (!dbTran.IsSuccess) @@ -387,12 +389,15 @@ var jobs = Biz.Db.Queryable<TSK_JOB>().IncludesAllFirstLayer().ToList(); foreach (var job in jobs) { - Type type = Type.GetType($"{job.AssemblyName}.{job.JobType},{job.AssemblyName}", throwOnError: true); - dynamic _type = Activator.CreateInstance(type); - TrigArgs args = JsonConvert.DeserializeObject<TrigArgs>(job.Triggers[0].Args); - Schedule schedule = Schedule(_type, job.JobName, registry); - //鐢熸垚璁″垝 - GenerateSchedule(args, schedule); + if (job.JobName == "fU9C_MES_GetWo" || job.JobName == "fTest") + { + Type type = Type.GetType($"{job.AssemblyName}.{job.JobType},{job.AssemblyName}", throwOnError: true); + dynamic _type = Activator.CreateInstance(type); + TrigArgs args = JsonConvert.DeserializeObject<TrigArgs>(job.Triggers[0].Args); + Schedule schedule = Schedule(_type, job.JobName, registry); + //鐢熸垚璁″垝 + GenerateSchedule(args, schedule); + } } } catch (System.Exception ex) diff --git a/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs b/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs index 58bea14..6722efd 100644 --- a/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs +++ b/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs @@ -147,5 +147,26 @@ } return Ok(response); } + + /// <summary> + /// 淇濆瓨浣滀笟 + /// </summary> + /// <param name="action"></param> + /// <returns></returns> + [HttpPost] + [Route("api/[controller]/[action]")] + public async Task<IActionResult> SaveTskJob(ApiAction<TskParameter> action) + { + ApiAction response = new(); + try + { + response = response.GetResponse(DI.Resolve<ITskJob>().SaveTskJob(action.Data)); + } + catch (System.Exception ex) + { + response = response.GetResponse().CatchExceptionWithLog(ex); + } + return Ok(response); + } } } -- Gitblit v1.9.3