服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-10-26 dcd80459e1ad3b7fc9ba6bcd581feb430f0778d3
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;
        }
    }
}