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);
        }
示例#2
0
        public Task Log(JobDataLogDocument document)
        {
            logs.Add(document);

            return(Task.CompletedTask);
        }