/// <summary> /// 运行成功以后 /// </summary> /// <param name="context"></param> /// <param name="jobException"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public Task JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException, CancellationToken cancellationToken = default) { //Job执行完成 return(Task.Factory.StartNew(() => { DateTime NextFireTimeUtc = context.Trigger.GetNextFireTimeUtc().HasValue ? context.Trigger.GetNextFireTimeUtc().Value.LocalDateTime : default(DateTime); DateTime FireTimeUtc = context.Trigger.GetPreviousFireTimeUtc().HasValue ? context.Trigger.GetPreviousFireTimeUtc().Value.LocalDateTime : default(DateTime); double TotalSeconds = context.JobRunTime.TotalSeconds; string JobName = context.JobDetail.Key.Name; string LogContent = $"jobName:{JobName},Job: {context.JobDetail.Key} 执行完成,Name={Name},JobWasExecuted"; int joibId = 0; if (context.MergedJobDataMap != null) { // JobName = context.MergedJobDataMap.GetString("JobName"); System.Text.StringBuilder log = new System.Text.StringBuilder(); int i = 0; foreach (var item in context.MergedJobDataMap) { string key = item.Key; if (key == MangertKey.JobDataMapKeyJobId) { joibId = Convert.ToInt32(item.Value); } if (key.StartsWith("extend_")) { if (i > 0) { log.Append(","); } log.AppendFormat("{0}:{1}", item.Key, item.Value); i++; } } if (i > 0) { LogContent = string.Concat("[", log.ToString(), "]"); } } if (jobException != null) { LogContent = LogContent + " EX:" + jobException.ToString(); } Singleton <MangerLog> .Instance.Infor(LogContent); Console.WriteLine(LogContent); _logmsg.Insert(new model.quarzt.logMsg { JobName = JobName, Msg = LogContent }); _quatzjobRepostory.UpdateRunTime(joibId); })); }