From dcd80459e1ad3b7fc9ba6bcd581feb430f0778d3 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 26 十月 2024 00:35:01 +0800
Subject: [PATCH] 计划任务更新

---
 Tiger.Business/Services/Base/TigerJobBase.cs |   61 ++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 5 deletions(-)

diff --git a/Tiger.Business/Services/Base/TigerJobBase.cs b/Tiger.Business/Services/Base/TigerJobBase.cs
index 842287b..226c523 100644
--- a/Tiger.Business/Services/Base/TigerJobBase.cs
+++ b/Tiger.Business/Services/Base/TigerJobBase.cs
@@ -11,10 +11,10 @@
     /// </summary>
     public class TigerJobBase
     {
-        public string Id { get; set; }
-        public string Tag { get; set; }
-        public string Name { get; set; }
-
+        /// <summary>
+        /// 寮�濮嬫椂闂�
+        /// </summary>
+        public static DateTime StartTime { get; set; }
         /// <summary>
         /// 淇濆瓨鏃ュ織
         /// </summary>
@@ -29,7 +29,7 @@
                 Args = context.Trigger.Args,
                 Operation = context.Trigger.Status.ToString(),
                 Status = "Successed",
-                StartTime = context.Trigger.StartTime,
+                StartTime = StartTime,
                 EndTime = context.Trigger.EndTime,
                 ElapsedTime = context.Trigger.ElapsedTime,
                 Remark = remark
@@ -48,5 +48,56 @@
             return action;
         }
 
+        /// <summary>
+        /// 淇濆瓨鏃ュ織
+        /// </summary>
+        /// <param name="JobName"></param>
+        /// <param name="remark"></param>
+        /// <returns></returns>
+        public static ApiAction SaveFluentSchedulerLog(string JobName,string status, string remark)
+        {
+            ApiAction action = new ApiAction();
+            var job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == JobName).IncludesAllFirstLayer().First();
+            var trig = job.Triggers?[0];
+            if (trig != null)
+            {
+                trig.ElapsedTime = (long)Math.Ceiling((DateTime.Now-StartTime).TotalMilliseconds);
+                trig.StartTime = StartTime;
+                trig.EndTime = DateTime.Now;
+            }
+            else {
+                action.IsSuccessed = false;
+                action.LocaleMsg = new($"宸ヤ綔浠诲姟涓嶅瓨鍦�");
+                Logger.Scheduler.Error("宸ヤ綔浠诲姟涓嶅瓨鍦╘r\n");
+                return action;
+            }
+            var logentity = new TSK_LOG
+            {
+                JobId = job.ID,
+                AssemblyName = job.AssemblyName,
+                Args = trig.Args,
+                //Operation = job.Triggers?[0].Status.ToString(),
+                Status = status, //job.Triggers?[0].Status.ToString(),
+                StartTime = trig.StartTime,
+                EndTime = trig.EndTime,
+                ElapsedTime = trig.ElapsedTime,
+                Remark = remark
+            };
+
+            var db = Business.Biz.Db;
+            //淇濆瓨鍒版暟鎹簱
+            var dbTran = db.UseTran(() =>
+            {
+                db.Updateable(trig, "System_Job").UpdateColumns(q => new { q.StartTime, q.ElapsedTime,q.UpdatedTime,q.UPDATE_USER}).ExecuteCommand();
+                db.Insertable(logentity).ExecuteCommand();
+            });
+            if (!dbTran.IsSuccess)
+            {
+                action.GetResponse().CatchExceptionWithLog(dbTran.ErrorException, $"浣滀笟鏃ュ織淇濆瓨鍒版暟鎹簱寮傚父");
+            }
+            Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{JobName})浣滀笟鏃ュ織淇濆瓨鍒版暟鎹簱瀹屾垚\r\n");
+            return action;
+        }
+
     }
 }

--
Gitblit v1.9.3