public async Task JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException, CancellationToken cancellationToken = default) { _stopwatches[context.FireInstanceId].Stop(); var endDocument = new JobDataEndDocument { JobId = context.FireInstanceId, JobType = context.JobDetail.JobType.Name, JobName = context.JobDetail.Key.Name, EndDate = DateTime.Now, ElapsedMilliseconds = _stopwatches[context.FireInstanceId].ElapsedMilliseconds }; await jobDataSource.Finish(endDocument); if (jobException != null) { var logDocument = new JobDataLogDocument { JobId = context.FireInstanceId, Level = "Error", JobName = context.JobDetail.Key.Name, Description = jobException.ToString(), CreatedDate = DateTime.Now }; await jobDataSource.Log(logDocument); await RetryJob(context); } _stopwatches.Remove(context.FireInstanceId); }
public Task Log(JobDataLogDocument document) { logs.Add(document); return(Task.CompletedTask); }