Beispiel #1
0
        /// <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);
            }));
        }