From c5c41deac02df2ac552f7eb51e8b9b5f5dcc5472 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期一, 28 十月 2024 12:51:38 +0800 Subject: [PATCH] 计划任务更新 --- Tiger.Business.MES/Task/TskJob.cs | 1 Tiger.Business/Services/Base/TigerJobBase.cs | 179 ++++++++++++++++++++++++-------------------- Tiger.Model.Net/Entitys/TSK/TSK_TRIG.cs | 1 Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs | 1 4 files changed, 100 insertions(+), 82 deletions(-) diff --git a/Tiger.Business.MES/Task/TskJob.cs b/Tiger.Business.MES/Task/TskJob.cs index be82be3..a3b3afa 100644 --- a/Tiger.Business.MES/Task/TskJob.cs +++ b/Tiger.Business.MES/Task/TskJob.cs @@ -65,6 +65,7 @@ Minutes = input.Minutes, Hours = input.Hours, Days = input.Days, + Interval = input.Interval, }; TSK_TRIG tskTrig = Biz.Db.Queryable<TSK_TRIG>().Where(x => x.JobId == _job.ID).First() ?? new() { diff --git a/Tiger.Business/Services/Base/TigerJobBase.cs b/Tiger.Business/Services/Base/TigerJobBase.cs index da8665f..af7a6f8 100644 --- a/Tiger.Business/Services/Base/TigerJobBase.cs +++ b/Tiger.Business/Services/Base/TigerJobBase.cs @@ -25,13 +25,15 @@ /// <summary> /// 淇濆瓨鏃ュ織 /// </summary> - public static ApiAction SaveLog(JobExecutingContext context,string remark) { + public static ApiAction SaveLog(JobExecutingContext context, string remark) + { ApiAction action = new ApiAction(); Type type = Type.GetType(context.JobDetail.JobType, throwOnError: true); - var job = Biz.Db.Queryable<TSK_JOB>().Where(x=>x.JobName == context.JobId && x.JobType == type.Name).First(); - var logentity = new TSK_LOG { + var job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == context.JobId && x.JobType == type.Name).First(); + var logentity = new TSK_LOG + { JobId = job.ID, - TriggerType =context.JobDetail.JobType, + TriggerType = context.JobDetail.JobType, AssemblyName = context.JobDetail.AssemblyName, Args = context.Trigger.Args, Operation = context.Trigger.Status.ToString(), @@ -66,11 +68,12 @@ ApiAction action = new ApiAction(); if (Trig != null) { - Trig.ElapsedTime = (long)Math.Ceiling((DateTime.Now-StartTime).TotalMilliseconds); - Trig.StartTime = StartTime; + Trig.ElapsedTime = (long)Math.Ceiling((DateTime.Now - StartTime).TotalMilliseconds); + Trig.StartTime = StartTime; Trig.EndTime = DateTime.Now; } - else { + else + { action.IsSuccessed = false; action.LocaleMsg = new($"宸ヤ綔浠诲姟涓嶅瓨鍦�"); Logger.Scheduler.Error("宸ヤ綔浠诲姟涓嶅瓨鍦╘r\n"); @@ -93,7 +96,7 @@ //淇濆瓨鍒版暟鎹簱 var dbTran = db.UseTran(() => { - db.Updateable(Trig, "System_Job").UpdateColumns(q => new { q.StartTime,q.LastRunTime, q.ElapsedTime,q.UpdatedTime,q.UPDATE_USER}).ExecuteCommand(); + db.Updateable(Trig, "System_Job").UpdateColumns(q => new { q.StartTime, q.LastRunTime, q.ElapsedTime, q.UpdatedTime, q.UPDATE_USER }).ExecuteCommand(); db.Insertable(logentity).ExecuteCommand(); }); if (!dbTran.IsSuccess) @@ -122,81 +125,93 @@ { TskJobInput tskJobInput = new TskJobInput(); var dateTime = DateTime.Now; - //鎸夋椂闂寸被鍨嬫潵杩愯 - switch (Args.Type) + if (Args.Interval > 0) { - case TrigArgs.EveryType.Milliseconds: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddMilliseconds(-Args.ToRunEvery); - tskJobInput.result = (DateTime.Now - dateTime).TotalMilliseconds > Args.ToRunEvery; - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddMilliseconds(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; - case TrigArgs.EveryType.Seconds: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddSeconds(-Args.ToRunEvery); - tskJobInput.result = (DateTime.Now - dateTime).TotalSeconds > Args.ToRunEvery; - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddSeconds(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; - case TrigArgs.EveryType.Minutes: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddMinutes(-Args.ToRunEvery); - tskJobInput.result = (DateTime.Now - dateTime).TotalMinutes > Args.ToRunEvery; - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddMinutes(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; - case TrigArgs.EveryType.Hours: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddHours(-Args.ToRunEvery); - tskJobInput.result = (DateTime.Now - dateTime).TotalHours > Args.ToRunEvery; - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddHours(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; - case TrigArgs.EveryType.Days: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-Args.ToRunEvery); - tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery; - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; - case TrigArgs.EveryType.Weeks: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-7); - tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery * 7; - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; - case TrigArgs.EveryType.Weekdays: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-Args.ToRunEvery); - tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery; - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; - case TrigArgs.EveryType.Months: - dateTime = Trig.LastRunTime ?? DateTime.Now.AddMonths(-Args.ToRunEvery); - tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery * DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); - tskJobInput.input = new() - { - startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), - endTime = dateTime.AddMonths(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), - }; - break; + tskJobInput.result = true; + tskJobInput.input = new() + { + startTime = dateTime.AddHours(-Args.Interval).ToString("yyyy-MM-dd HH:mm:ss"), + endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + }; + } + else + { + //鎸夋椂闂寸被鍨嬫潵杩愯 + switch (Args.Type) + { + case TrigArgs.EveryType.Milliseconds: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddMilliseconds(-Args.ToRunEvery); + tskJobInput.result = (DateTime.Now - dateTime).TotalMilliseconds > Args.ToRunEvery; + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddMilliseconds(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + case TrigArgs.EveryType.Seconds: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddSeconds(-Args.ToRunEvery); + tskJobInput.result = (DateTime.Now - dateTime).TotalSeconds > Args.ToRunEvery; + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddSeconds(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + case TrigArgs.EveryType.Minutes: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddMinutes(-Args.ToRunEvery); + tskJobInput.result = (DateTime.Now - dateTime).TotalMinutes > Args.ToRunEvery; + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddMinutes(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + case TrigArgs.EveryType.Hours: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddHours(-Args.ToRunEvery); + tskJobInput.result = (DateTime.Now - dateTime).TotalHours > Args.ToRunEvery; + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddHours(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + case TrigArgs.EveryType.Days: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-Args.ToRunEvery); + tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery; + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + case TrigArgs.EveryType.Weeks: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-7); + tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery * 7; + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + case TrigArgs.EveryType.Weekdays: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddDays(-Args.ToRunEvery); + tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery; + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddDays(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + case TrigArgs.EveryType.Months: + dateTime = Trig.LastRunTime ?? DateTime.Now.AddMonths(-Args.ToRunEvery); + tskJobInput.result = (DateTime.Now - dateTime).TotalDays > Args.ToRunEvery * DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); + tskJobInput.input = new() + { + startTime = dateTime.ToString("yyyy-MM-dd HH:mm:ss"), + endTime = dateTime.AddMonths(Args.ToRunEvery).ToString("yyyy-MM-dd HH:mm:ss"), + }; + break; + } } return tskJobInput; } diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs index a84304d..5400955 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/TskParameter.cs @@ -24,6 +24,7 @@ public int Minutes { get; set; } public int Hours { get; set; } public int Days { get; set; } + public double Interval { get; set; } } public class TskJobInput diff --git a/Tiger.Model.Net/Entitys/TSK/TSK_TRIG.cs b/Tiger.Model.Net/Entitys/TSK/TSK_TRIG.cs index 5f0ab0b..a1a74df 100644 --- a/Tiger.Model.Net/Entitys/TSK/TSK_TRIG.cs +++ b/Tiger.Model.Net/Entitys/TSK/TSK_TRIG.cs @@ -197,6 +197,7 @@ public int Hours { get; set; } public int Days { get; set; } public int Weekday { get; set; } + public double Interval { get; set; } public enum EveryType { -- Gitblit v1.9.3