public override void JobWasExecuted(Quartz.IJobExecutionContext context, Quartz.JobExecutionException jobException) { base.JobWasExecuted(context, jobException); long scheduledTaskId = (long)context.MergedJobDataMap["scheduledTaskId"]; ScheduledTaskRunStatistics lastRunStatistics = new ScheduledTaskRunStatistics(); lastRunStatistics.StartTimeUtc = context.FireTimeUtc.HasValue ? context.FireTimeUtc.Value.DateTime : new DateTime?(); lastRunStatistics.EndTimeUtc = context.FireTimeUtc.HasValue ? context.FireTimeUtc.Value.Add(context.JobRunTime).DateTime : new DateTime?(); if (jobException != null) { lastRunStatistics.Status = ScheduledTaskStatus.Failed; lastRunStatistics.Error = jobException.Message; } else { ExecuteSequenceJobResult result = (ExecuteSequenceJobResult)context.Result; lastRunStatistics.Status = result.RunStatus; lastRunStatistics.Error = result.RunError; } string connectionString = (string)context.MergedJobDataMap["connectionString"]; SchedulingController controller = new SchedulingController(connectionString); controller.SetScheduledTaskLastRunStatistics(scheduledTaskId, lastRunStatistics); zOnTaskComplete(new TaskEventArgs(scheduledTaskId)); m_IsJobRunning = false; }
public virtual async System.Threading.Tasks.Task Execute(Quartz.IJobExecutionContext context) { if (context.CancellationToken.IsCancellationRequested) { Console.WriteLine("取消执行。"); return; } try { DistributingData disriObj = context.JobDetail.JobDataMap.Get("distriData") as DistributingData; Console.WriteLine(@"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + disriObj.DistributeFlag + disriObj.PageIndex.ToString()); } catch (Exception ep) { Quartz.JobExecutionException jobep = new Quartz.JobExecutionException(); //jobep.RefireImmediately=false; throw jobep; } }
private JobLogEntry CreateEntry(Quartz.IJobExecutionContext jobContext, string kind, Quartz.JobExecutionException exception = null) { JobLogEntry entry = new JobLogEntry(); entry.Group = jobContext.JobDetail.Key.Group; entry.Name = jobContext.JobDetail.Key.Name; entry.Kind = kind; entry.Timestamp = DateTime.UtcNow; entry.JobRunTime = jobContext.JobRunTime; entry.NextFireTimeUtc = jobContext.NextFireTimeUtc; entry.PreviousFireTimeUtc = jobContext.PreviousFireTimeUtc; if (exception != null) { entry.ExceptionMessage = exception.Message; entry.ExceptionStackTrace = exception.StackTrace; } return(entry); }
private void OneOffJobWasExecuted(Quartz.IJobExecutionContext context, Quartz.JobExecutionException jobException) { string scriptId = context.JobDetail.Key.Name; _view.ChangeScriptStatusThreadSafe(GetScriptById(scriptId)); }
public void LogJobWasExecuted(Quartz.IJobExecutionContext jobContext, Quartz.JobExecutionException exception) { var entry = CreateEntry(jobContext, "wasExecuted", exception); this.JobLogs.Insert(entry); }