public void StopCronJob(CronJobType cronJobID, DateTime stopTime) { using (var _unitOfWork = new EfUnitOfWork()) { Logger.Current.Informational("Request for stopping cronjob"); var cronJobHistory = _unitOfWork.CronJobHistoryRepository.Find(ch => ch.CronJobID == cronJobID).OrderByDescending(ch => ch.StartTime).FirstOrDefault(); //var cronJobHistory = _unitOfWork.CronJobHistoryRepository.Find(ch => ch.CronJobID == cronJobID).OrderByDescending(ch => ch.StartTime).Take(1).FirstOrDefault(); var cronJob = _unitOfWork.CronJobsRepository.Single(cj => cj.CronJobID == cronJobID); cronJob.IsRunning = false; cronJob.LastNotifyDateTime = stopTime; if (cronJobHistory != null) { cronJobHistory.EndTime = DateTime.UtcNow; } else { Logger.Current.Error("Start entry doesn't exists for jobid " + cronJobID); } _unitOfWork.CronJobsRepository.Edit(cronJob); _unitOfWork.CronJobHistoryRepository.Edit(cronJobHistory); _unitOfWork.Commit(); Logger.Current.Informational("Cronjob stopped successfully"); } }
public void UpdateLastNotifyDateTime(CronJobType cronJobID, DateTime lastNotifyDateTime) { using (var _unitOfWork = new EfUnitOfWork()) { var cronJob = _unitOfWork.CronJobsRepository.Single(cj => cj.CronJobID == cronJobID); cronJob.LastNotifyDateTime = lastNotifyDateTime; _unitOfWork.CronJobsRepository.Edit(cronJob); _unitOfWork.Commit(); } }
public void RegisterJob <T>(CronJobType jobType) where T : IJob { var dbJob = _jobService.GetCronJobByType(jobType); if (dbJob == null) { throw new InvalidOperationException($"Job with {jobType} not found in the database"); } RegisterJob <T>(jobType, dbJob.Expression); }
public void RegisterJob <T>(CronJobType jobType, string cronExpressinon) where T : IJob { var group = "group" + jobType; var jobName = "job" + jobType; var trigger = BuildTrigger(jobType, cronExpressinon); var jobDetail = JobBuilder.Create <T>() .WithIdentity(jobName, group) .UsingJobData(BaseJob.DbJobTypeKey, (int)jobType) .Build(); _scheduler.ScheduleJob(jobDetail, trigger); }
private ITrigger BuildTrigger(CronJobType jobType, string cronExpressinon) { if (String.IsNullOrEmpty(cronExpressinon)) { throw new ArgumentException("cronExpressinon is not defined"); } var trigger = TriggerBuilder.Create() .WithIdentity("trigger", jobType.ToString()) .WithCronSchedule(cronExpressinon) .Build(); return(trigger); }
public void StartJob(CronJobType cronJobID, DateTime lastRunTime) { using (var _unitOfWork = new EfUnitOfWork()) { var cronJob = _unitOfWork.CronJobsRepository.Single(cj => cj.CronJobID == cronJobID); cronJob.LastRunOn = lastRunTime; cronJob.IsRunning = true; cronJob.LastNotifyDateTime = lastRunTime; _unitOfWork.CronJobsRepository.Edit(cronJob); var cronJobHistory = new CronJobHistoryDb { CronJobID = cronJobID, StartTime = DateTime.UtcNow, }; _unitOfWork.CronJobHistoryRepository.Add(cronJobHistory); _unitOfWork.Commit(); } }
public void RegisterJob(CronJobType jobType, Type job, string jobGroup) { var dbJob = _jobService.GetCronJobByType(jobType); if (dbJob == null) { throw new InvalidOperationException($"Job with {jobType} not found in the database"); } var group = "group" + jobGroup; var jobName = "job" + jobType; var trigger = BuildTrigger(jobType, dbJob.Expression); var jobDetail = JobBuilder.Create(job) .WithIdentity(jobName, group) .UsingJobData(BaseJob.DbJobTypeKey, (int)jobType) .Build(); _scheduler.ScheduleJob(jobDetail, trigger); }
public List <QuartzJob> GetByType(CronJobType type) { DataContext dc = new DataContext(this.DbString); return(dc.Context.GetTable <QuartzJob>().Where(s => s.jobType.Equals((int)type)).ToList()); }
public CronJobDb GetCronJobByType(CronJobType cronJobID) { return(unitOfWork.CronJobsRepository.SingleOrDefault(x => x.CronJobID == cronJobID)); }