private void CreateNextJobTrigger(IJobExecutionContext context) { try { IScheduler scheduler = context.Scheduler; ITimedProcessing timedProcessing = (ITimedProcessing)context.JobDetail.JobDataMap["TimeProcessingObject"]; DateTimeOffset nextExecutionOffSet = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); ITrigger trigger = TriggerBuilder.Create() .StartAt(timedProcessing.GetNextExecutionDateTime()) .Build(); scheduler.RescheduleJob(context.Trigger.Key, trigger); if (context.NextFireTimeUtc.HasValue) { logger.Info("Job was Executed " + context.JobDetail.Key + " at " + context.NextFireTimeUtc.Value.ToLocalTime()); } } catch (Exception ex) { logger.Error("Invalid Trigger chaining " + ex.Message); } }
private JobDataMap BuildJobDataMap(ITimedProcessing job) { JobDataMap jobDataMap = new JobDataMap(); jobDataMap.Add("ActionId", job.ActionId); jobDataMap.Add("TimeProcessingObject", job); return(jobDataMap); }