public JobLogService(IJobLogRepository jobLogRepository, IScheduleService scheduleService, ISystemService systemService, ICommonService commonService, IUnitOfWork unitOfWork) { _jobLogRepository = jobLogRepository; _scheduleService = scheduleService; _systemService = systemService; _commonService = commonService; _unitOfWork = unitOfWork; }
public JobService(IMapper mapper, IJobRepository repository, ILogger <JobService> logger, IQuartzServer quartzServer, IJobLogRepository logRepository) { _mapper = mapper; _repository = repository; _logger = logger; _quartzServer = quartzServer; _logRepository = logRepository; }
public JobService(IMapper mapper, IJobRepository repository, ILogger <JobService> logger, IQuartzServer quartzServer, IJobLogRepository logRepository, QuartzDbContext dbContext) { _mapper = mapper; _repository = repository; _logger = logger; _quartzServer = quartzServer; _logRepository = logRepository; _dbContext = dbContext; }
protected async Task ExecuteAsync(CancellationToken stoppingToken) { await Task.Yield(); // required so that this method does not block startup try { while (!stoppingToken.IsCancellationRequested) { using (var scope = _serviceScopeFactory.CreateScope()) { // get name of job string jobType = Utilities.GetFullTypeName(GetType().AssemblyQualifiedName); // load jobs and find current job IJobRepository jobs = scope.ServiceProvider.GetRequiredService <IJobRepository>(); Job job = jobs.GetJobs().Where(item => item.JobType == jobType).FirstOrDefault(); if (job != null && job.IsEnabled && !job.IsExecuting) { // get next execution date DateTime NextExecution; if (job.NextExecution == null) { if (job.StartDate != null) { NextExecution = job.StartDate.Value; } else { NextExecution = DateTime.UtcNow; } } else { NextExecution = job.NextExecution.Value; } // determine if the job should be run if (NextExecution <= DateTime.UtcNow && (job.EndDate == null || job.EndDate >= DateTime.UtcNow)) { IJobLogRepository jobLogs = scope.ServiceProvider.GetRequiredService <IJobLogRepository>(); // create a job log entry JobLog log = new JobLog(); log.JobId = job.JobId; log.StartDate = DateTime.UtcNow; log.FinishDate = null; log.Succeeded = false; log.Notes = ""; log = jobLogs.AddJobLog(log); // update the job to indicate it is running job.IsExecuting = true; jobs.UpdateJob(job); // execute the job try { log.Notes = ExecuteJob(scope.ServiceProvider); log.Succeeded = true; } catch (Exception ex) { log.Notes = ex.Message; log.Succeeded = false; } // update the job log log.FinishDate = DateTime.UtcNow; jobLogs.UpdateJobLog(log); // update the job job.NextExecution = CalculateNextExecution(NextExecution, job.Frequency, job.Interval); job.IsExecuting = false; jobs.UpdateJob(job); // trim the job log List <JobLog> logs = jobLogs.GetJobLogs().Where(item => item.JobId == job.JobId) .OrderByDescending(item => item.JobLogId).ToList(); for (int i = logs.Count; i > job.RetentionHistory; i--) { jobLogs.DeleteJobLog(logs[i - 1].JobLogId); } } } } // wait 1 minute await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken); } } catch { // can occur during the initial installation as there is no DBContext } }
public JobLogController(IJobLogRepository jobLogs, ILogManager logger) { _jobLogs = jobLogs; _logger = logger; }
public JobLogController(IJobLogRepository JobLogs, ILogManager logger) { this.JobLogs = JobLogs; this.logger = logger; }
public JobLogService(IMapper mapper, IJobLogRepository repository) { _mapper = mapper; _repository = repository; }
public TaskLogger(IJobLogRepository repository, QuartzOptions options) { _repository = repository; _options = options; }
//public static bool logging; static JobLogServices() { repository = new JobLogRepository(); }
public JobLogController(IJobLogRepository jobLogs) { _jobLogs = jobLogs; }
public JobLogger(IJobLogRepository repository, IOptionsMonitor <QuartzOptions> optionsMonitor) { _repository = repository; _options = optionsMonitor.CurrentValue; }
public JobLogger(IJobLogRepository repository) { _repository = repository; }
public TaskLogger(IJobLogRepository repository, IConfigProvider configProvider) { _repository = repository; _configProvider = configProvider; }