public static async void Start(IServiceProvider serviceProvider) { var configuration = serviceProvider.GetService <IConfiguration>(); if (configuration != null) { var schedulerOptions = configuration.GetSection(SchedulerOptions.Scheduler).Get <SchedulerOptions>(); var timeZoneOptions = configuration.GetSection(TimeZoneOptions.TimeZone).Get <TimeZoneOptions>(); var timeZoneId = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? timeZoneOptions.Windows : timeZoneOptions.Linux; var scheduler = await StdSchedulerFactory.GetDefaultScheduler(); scheduler.JobFactory = serviceProvider.GetService <JobFactory>() ?? throw new InvalidOperationException(); await scheduler.Start(); var jobDetail = JobBuilder.Create <SendCookingPollJob>().Build(); var trigger = TriggerBuilder.Create() .WithSchedule(CronScheduleBuilder .AtHourAndMinuteOnGivenDaysOfWeek(schedulerOptions.Hours, schedulerOptions.Minutes, DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday) .InTimeZone(TimeZoneInfo.FindSystemTimeZoneById(timeZoneId))) .Build(); await scheduler.ScheduleJob(jobDetail, trigger); } else { throw new InvalidOperationException("Service not found!"); } }
private void CreateRoutine() { var time = _settings.Schedule.Time; var days = GetSystemDaysOfWeek(_settings.Schedule.DaysOfWeek).ToArray(); var scheduleBuilder = CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(time.Hour, time.Minute, days); var trigger = TriggerBuilder.Create().StartNow().WithSchedule(scheduleBuilder).Build(); }
public override ITrigger GetTrigger() { return(TriggerBuilder.Create() .WithSchedule(CronScheduleBuilder .AtHourAndMinuteOnGivenDaysOfWeek(11, 00, DayOfWeek.Tuesday)) .Build()); }
private void BuildJob() { StdSchedulerFactory schedFact = new StdSchedulerFactory(); Task <IScheduler> sched = schedFact.GetScheduler(); sched.Result.Start(); IJobDetail immediateTimeReportsSyncJob = JobBuilder.Create <TimeReportsSyncJob>() .WithIdentity("immediateTimeReportsSync", "timeReportsSync") .Build(); ITrigger immediateTimeReportsSyncTrigger = TriggerBuilder.Create() .WithIdentity("immediateTimeReportsSync", "timeReportsSync") .StartNow() .Build(); IJobDetail dailyTimeReportsSyncJob = JobBuilder.Create <TimeReportsSyncJob>() .WithIdentity("dailyTimeReportsSync", "timeReportsSync") .Build(); ITrigger dailyTimeReportsSyncTrigger = TriggerBuilder.Create() .WithIdentity("dailyTimeReportsSync", "timeReportsSync") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(23, 58, DayOfWeek.Sunday, DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday)) .Build(); sched.Result.ScheduleJob(immediateTimeReportsSyncJob, immediateTimeReportsSyncTrigger).ContinueWith(t => sched.Result.ScheduleJob(dailyTimeReportsSyncJob, dailyTimeReportsSyncTrigger)); }
/// <summary> /// 每周 /// </summary> public static long AddWeeklySchedule(DayOfWeek[] days, int hour, int minute, long actorId, string actorAgentType, string handlerType, Param param) { long id = newID(); var trigger = TriggerBuilder.Create().StartNow().WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(hour, minute, days)).Build(); scheduler.ScheduleJob(getJobDetail(id, actorId, actorAgentType, handlerType, param), trigger); return(id); }
public async Task <ITrigger> FillTriggerAsync(Services.Notification.NotificationSchedule value) { DayOfWeek[] weekDays = new DayOfWeek[7]; int i = 0; if (value.RunOnSunday) { weekDays[i++] = DayOfWeek.Sunday; } if (value.RunOnMonday) { weekDays[i++] = DayOfWeek.Monday; } if (value.RunOnTuesday) { weekDays[i++] = DayOfWeek.Tuesday; } if (value.RunOnWednesday) { weekDays[i++] = DayOfWeek.Wednesday; } if (value.RunOnThursday) { weekDays[i++] = DayOfWeek.Thursday; } if (value.RunOnFriday) { weekDays[i++] = DayOfWeek.Friday; } if (value.RunOnSaturday) { weekDays[i++] = DayOfWeek.Saturday; } if (await Scheduler.CheckExists(new TriggerKey(value.SubscriberID, value.NotificationType)) == true) { await Scheduler.DeleteJob(new JobKey(value.SubscriberID, value.NotificationType)); } var k = new TriggerKey(value.SubscriberID, value.NotificationType); var trigger = TriggerBuilder.Create() .WithIdentity(k) .WithSchedule(CronScheduleBuilder .AtHourAndMinuteOnGivenDaysOfWeek(value.RunOnHour, value.RunOnMinute, weekDays.Take(i).ToArray())) .ForJob(new JobKey(value.NotificationType)) .Build(); return(trigger); }
public void TestAtHourAndMinuteOnGivenDaysOfWeek() { var trigger = (ICronTrigger)TriggerBuilder.Create() .WithIdentity("test") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(10, 0, DayOfWeek.Monday, DayOfWeek.Thursday, DayOfWeek.Friday)) .Build(); Assert.AreEqual("0 0 10 ? * 2,5,6", trigger.CronExpressionString); trigger = (ICronTrigger)TriggerBuilder.Create().WithIdentity("test") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(10, 0, DayOfWeek.Wednesday)) .Build(); Assert.AreEqual("0 0 10 ? * 4", trigger.CronExpressionString); }
// Method to schedule task. public void Start(int hour, int min, string baseUrl, DayOfWeek[] selectedDays) { var scheduler = StdSchedulerFactory.GetDefaultScheduler().GetAwaiter().GetResult(); scheduler.Start(); IJobDetail job = JobBuilder.Create <ScheduleTaskReminder>(). UsingJobData("baseUrl", baseUrl). Build(); CronScheduleBuilder csb = CronScheduleBuilder .AtHourAndMinuteOnGivenDaysOfWeek(hour, min, selectedDays); ICronTrigger trigger = (ICronTrigger)TriggerBuilder .Create() .WithSchedule(csb) .Build(); scheduler.ScheduleJob(job, trigger); }
public virtual DateTimeOffset ScheduleJob(string name, int hour, int minute, DayOfWeek[] daysOfWeek) { CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(hour, minute, daysOfWeek); JobDataMap dataMap = new JobDataMap { { "JobName", name } }; IJobDetail jobDetail = JobBuilder .Create <EnqueingJob>() .WithIdentity(name) .SetJobData(dataMap) .Build(); ITrigger trigger = TriggerBuilder .Create() .WithIdentity($"Orchestrator-{name}") .WithSchedule(scheduleBuilder) .Build(); return(Scheduler.ScheduleJob(jobDetail, trigger)); }
private KeyValuePair <IJobDetail, ITrigger> CreateCronJob( Guid id, string deviceData, DateTime time, DayOfWeek[] days, bool isActivate) { var type = isActivate ? "Activate" : "Deactivate"; var job = JobBuilder.Create <DeviceJob>() .UsingJobData("state", isActivate) .UsingJobData("deviceData", deviceData) .WithIdentity(type, id.ToString()) .Build(); var trigger = TriggerBuilder.Create() .WithIdentity(type, id.ToString()) .WithSchedule(CronScheduleBuilder .AtHourAndMinuteOnGivenDaysOfWeek(time.Hour, time.Minute, days)) .Build(); return(new KeyValuePair <IJobDetail, ITrigger>(job, trigger)); }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(); StdSchedulerFactory factory = new StdSchedulerFactory(); IScheduler scheduler = factory.GetScheduler().Result; IJobDetail job = JobBuilder.Create <Job>().WithIdentity(new JobKey("potato")).Build(); ITrigger trigger = TriggerBuilder.Create().WithSchedule( CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek( 23, 0, DayOfWeek.Monday, DayOfWeek.Saturday)).Build(); Task <DateTimeOffset> offset = scheduler.ScheduleJob(job, trigger); scheduler.Start(); IWindsorContainer container = CreateWindsorRegistration(); return(services.AddWindsor(container)); }
private static ITrigger CreateTriggerForSpecificRunTime(string triggerName, string runAtTime, string runOnDays, string excludeCalendar, string targetTimeZone) { ITrigger trigger = null; TimeZoneInfo timezone = TimeZoneInfo.Local; if (!string.IsNullOrEmpty(targetTimeZone)) { timezone = TimeZoneInfo.FindSystemTimeZoneById(targetTimeZone); } if (!string.IsNullOrEmpty(runOnDays)) { var daysOfWeek = ScheduleStringHelper.GetDaysOfWeekToRunOn(runOnDays); var runAtTuple = ScheduleStringHelper.GetHoursAndMinutes(runAtTime); trigger = TriggerBuilder.Create() .WithIdentity(triggerName) .WithDescription($"Run at: {runAtTime}, run days: {runOnDays}, exclusion calendar: {excludeCalendar}") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(runAtTuple.Item1, runAtTuple.Item2, daysOfWeek) .InTimeZone(timezone)) .ModifiedByCalendar(excludeCalendar) .StartNow() .Build(); } //else if (!string.IsNullOrEmpty(runCalendar)) //{ // trigger = TriggerBuilder.Create() // .WithIdentity(string.Format("Trigger_for_{0}", job.Key)) // .WithDescription(string.Format("Run at: {0}, run calendar: {1}, exclusion calendar: {2}", runAt, runCalendar, excludeCalendar)) // .WithSchedule(CronScheduleBuilder.) // .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(hour, minute)) // .ModifiedByCalendar(runCalendar) // .StartNow() // .Build(); //} return(trigger); }
private TriggerBuilder GetTriggerBuilder(JobDetail jd, TriggerDetail td) { var trigger = TriggerBuilder.Create(); trigger.WithIdentity(td.TriggerKey, jd.Group); trigger.ForJob(jd.JobKey); trigger.WithPriority(td.Priority); trigger.StartAt(td.StartTime); if (td.EndTime != null && !td.EndTime.Equals(DateTime.MinValue)) { trigger.EndAt(td.EndTime); } switch (td.ScheduleTypeValue.ToLower()) { case "seconds": if (td.RepeatInterval > 0) { if (td.RepeatCount > 0) { trigger = trigger.WithSimpleSchedule(x => x .WithIntervalInSeconds(td.RepeatInterval) .WithRepeatCount(td.RepeatCount) ); } else { trigger = trigger.WithSimpleSchedule(x => x .WithIntervalInSeconds(td.RepeatInterval) .RepeatForever() ); } } else { Log.Warn(String.Format("Job {0} was configured with {1} schedule but no Repeat Interval mentioned. Please configure the Repeat Interval correctly !!", jd.JobKey, td.ScheduleType), this); } Diagnostics.Log.Info(String.Format("ScheduleType {0} and Schedule : {1})", td.ScheduleType, trigger.ToString()), this); break; case "minutes": if (td.RepeatInterval > 0) { if (td.RepeatCount > 0) { trigger = trigger.WithSimpleSchedule(x => x .WithIntervalInMinutes(td.RepeatInterval) .WithRepeatCount(td.RepeatCount) ); } else { trigger = trigger.WithSimpleSchedule(x => x .WithIntervalInMinutes(td.RepeatInterval) .RepeatForever() ); } } else { Log.Warn(String.Format("Job {0} was configured with {1} schedule but no Repeat Interval mentioned. Please configure the Repeat Interval correctly !!", jd.JobKey, td.ScheduleType), this); } Diagnostics.Log.Info(String.Format("ScheduleType {0} and Schedule : {1})", td.ScheduleType, trigger.ToString()), this); break; case "hours": if (td.RepeatInterval > 0) { if (td.RepeatCount > 0) { trigger = trigger.WithSimpleSchedule(x => x .WithIntervalInHours(td.RepeatInterval) .WithRepeatCount(td.RepeatCount) ); } else { trigger = trigger.WithSimpleSchedule(x => x .WithIntervalInHours(td.RepeatInterval) .RepeatForever() ); } } else { Log.Warn(String.Format("Job {0} was configured with {1} schedule but no Repeat Interval mentioned. Please configure the Repeat Interval correctly !!", jd.JobKey, td.ScheduleType), this); } Diagnostics.Log.Info(String.Format("ScheduleType {0} and Schedule : {1})", td.ScheduleType, trigger.ToString()), this); break; case "daily": trigger.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(td.StartTime.Hour, td.StartTime.Minute)); break; case "weekly": //Convert Sitecore DaysOfWeeks property to System.DaysOfWeek which is understood by Quartz.net if (td.DaysOfWeeks != null && td.DaysOfWeeks.Count > 0) { System.DayOfWeek[] dayOfWeeks = new System.DayOfWeek[td.DaysOfWeeks.Count]; for (int i = 0; i < td.DaysOfWeeks.Count; i++) { dayOfWeeks[i] = (System.DayOfWeek)Enum.Parse(typeof(System.DayOfWeek), td.DaysOfWeeks[i].DayOfWeekValue.ToString()); } trigger.WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(td.StartTime.Hour, td.StartTime.Minute, dayOfWeeks)); } else { Log.Warn(String.Format("Job {0} was configured with {1} schedule but \"Day of Weeks\" was not set correctly. Please configure the trigger correctly !!", jd.JobKey, td.ScheduleType), this); } break; case "monthly": if (td.DayOfMonth > 0) { trigger.WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(td.DayOfMonth, td.StartTime.Hour, td.StartTime.Minute)); } else { Log.Warn(String.Format("Job {0} was configured with {1} schedule but \"Day of Month\" was not set correctly. Please configure the trigger correctly !!", jd.JobKey, td.ScheduleType), this); } break; case "custom": if (!String.IsNullOrEmpty(td.CronExpression)) { trigger.WithSchedule(CronScheduleBuilder.CronSchedule(new CronExpression(td.CronExpression))); } else { Log.Warn(String.Format("Job {0} was configured with {1} schedule but \"Cron Expression\" was not set correctly. Please configure the trigger correctly !!", jd.JobKey, td.ScheduleType), this); } break; } return(trigger); }
public static void Start(IContainer container) { Container = container; var scheduler = container.Resolve <IScheduler>(); scheduler.JobFactory = new AutofacJobFactory(container); scheduler.Start(); // create jobs // comment as per client comment var dailyChoresJob = JobBuilder.Create <CreateDailyChores>() .WithIdentity("dailyChoresJob", "createChore") .Build(); var weeklyChoresJob = JobBuilder.Create <CreateWeeklyChores>() .WithIdentity("weeklyChoresJob", "createChore") .Build(); var makeWeeklyPaymentJob = JobBuilder.Create <MakeWeeklyPayment>() .WithIdentity("makeWeeklyPaymentJob", "createChore") .Build(); var sendWeeklyPaydayStatusJob = JobBuilder.Create <SendWeeklyPaydayStatus>() .WithIdentity("sendWeeklyPaydayStatusJob", "sendStatus") .Build(); var notifyIncompleteMemberEnrollmentJob = JobBuilder.Create <NotifyIncompleteMemberEnrollmentJob>() .WithIdentity("notifyIncompleteMemberEnrollmentJob", "incompleteNewMemberEnrollment") .Build(); var notifyParentHasNotLoggedInJob = JobBuilder.Create <NotifyParentHasNotLoggedInJob>() .WithIdentity("notifyParentHasNotLoggedInJob", "parentHasNotLoggedIn") .Build(); var renewSubscriptionJob = JobBuilder.Create <RenewSubscriptionJob>() .WithIdentity("renewSubscriptionJob", "subscription") .Build(); var notifyChildHasNotLoggedInJob = JobBuilder.Create <NotifyChildHasNotLoggedInJob>() .WithIdentity("notifyChildHasNotLoggedInJob", "childHasNotLoggedIn") .Build(); var notifyNoChoreCompletedJob = JobBuilder.Create <NotifyNoChoreCompletedJob>() .WithIdentity("notifyNoChoreCompletedJob", "noChoreCompleted") .Build(); var notifyContinuousChildActivityJob = JobBuilder.Create <NotifyContinuousChildActivityJob>() .WithIdentity("notifyContinuousChildActivityJob", "continuousChildActivity") .Build(); var notifySubscriptionRenewalJob = JobBuilder.Create <NotifySubscriptionRenewalJob>() .WithIdentity("notifySubscriptionRenewalJob", "subscription") .Build(); var remindSMSApprovalJob = JobBuilder.Create <RemindSMSApprovalJob>() .WithIdentity("remindSMSApprovalJob", "reminder") .Build(); var cancelNotRespondedSMSJob = JobBuilder.Create <CancelNotRespondedSMSJob>() .WithIdentity("cancelNotRespondedSMSJob", "reminder") .Build(); var remindChorePaymentApprovalJob = JobBuilder.Create <RemindChorePaymentJob>() .WithIdentity("remindChorePaymentApprovalJob", "reminder") .Build(); // Azure Service Bus Job var coreproMessageJob = JobBuilder.Create <CoreProMessageJob>() .WithIdentity("coreproMessageJob", "notification") .Build(); var cancelPandingPaydayRequest = JobBuilder.Create <CancelPandingPaydayRequest>() .WithIdentity("cancelPandingPaydayRequest", "cancelChore") .Build(); //create triggers // comment as per client comment var dailyChoresTrigger = TriggerBuilder.Create() .WithIdentity("dailyChoresTrigger", "createChore") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(1, 0, DayOfWeek.Sunday).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("dailyChoresJob", "createChore") .Build(); var weeklyChoresTrigger = TriggerBuilder.Create() .WithIdentity("weeklyChoresTrigger", "createChore") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(1, 30, DayOfWeek.Sunday).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("weeklyChoresJob", "createChore") .Build(); var notifyIncompleteNewMemberEnrollmentTrigger = TriggerBuilder.Create() .WithIdentity("notifyIncompleteNewMemberEnrollmentTrigger", "incompleteNewMemberEnrollment") .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(2, 0).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("notifyIncompleteMemberEnrollmentJob", "incompleteNewMemberEnrollment") .Build(); var notifyParentHasNotLoggedInTrigger = TriggerBuilder.Create() .WithIdentity("notifyParentHasNotLoggedInTrigger", "parentHasNotLoggedIn") .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(2, 30).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("notifyParentHasNotLoggedInJob", "parentHasNotLoggedIn") .Build(); var notifyChildHasNotLoggedInTrigger = TriggerBuilder.Create() .WithIdentity("notifyChildHasNotLoggedInTrigger", "childHasNotLoggedIn") .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(3, 0).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("notifyChildHasNotLoggedInJob", "childHasNotLoggedIn") .Build(); var notifyNoChoreCompletedTrigger = TriggerBuilder.Create() .WithIdentity("notifyNoChoreCompletedTrigger", "noChoreCompleted") .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(3, 30).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("notifyNoChoreCompletedJob", "noChoreCompleted") .Build(); var notifyContinuousChildActivityTrigger = TriggerBuilder.Create() .WithIdentity("notifyContinuousChildActivityTrigger", "continuousChildActivity") .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(4, 0).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("notifyContinuousChildActivityJob", "continuousChildActivity") .Build(); var notifySubscriptionRenewalTrigger = TriggerBuilder.Create() .WithIdentity("notifySubscriptionRenewalTrigger", "subscription") .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(4, 30).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("notifySubscriptionRenewalJob", "subscription") .Build(); // Send weekly payday notification trigger - at 10AM var sendWeeklyPaydayStatusTrigger = TriggerBuilder.Create() .WithIdentity("sendWeeklyPaydayStatusTrigger", "sendStatus") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(10, 0, DayOfWeek.Thursday).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))) .ForJob("sendWeeklyPaydayStatusJob", "sendStatus") .Build(); // Remind chore payment notification trigger -at 12PM var remindChorePaymentApprovalTrigger = TriggerBuilder.Create() .WithIdentity("remindChorePaymentApprovalTrigger", "reminder") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(12, 0, DayOfWeek.Thursday).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))) .ForJob("remindChorePaymentApprovalJob", "reminder") .Build(); // Now it's disapprove chore job after 24 hr of payday SMS - at 10:00 AM Friday var makeWeeklyPaymentTrigger = TriggerBuilder.Create() .WithIdentity("makeWeeklyPaymentTrigger", "createChore") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(10, 0, DayOfWeek.Friday).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))) .ForJob("makeWeeklyPaymentJob", "createChore") .Build(); // renewSubscription trigger - at 11PM var renewSubscriptionTrigger = TriggerBuilder.Create() .WithIdentity("renewSubscriptionTrigger", "subscription") .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(23, 0).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("renewSubscriptionJob", "subscription") .Build(); // SMS Approval Jobs - reminder and cancel approval var remindSMSApprovalTrigger = TriggerBuilder.Create() .WithIdentity("remindSMSApprovalTrigger", "reminder") .WithSchedule(CronScheduleBuilder.CronSchedule("0 0 0/1 * * ? *").InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("remindSMSApprovalJob", "reminder") .Build(); var cancelNotRespondedSMSTrigger = TriggerBuilder.Create() .WithIdentity("cancelNotRespondedSMSTrigger", "reminder") .WithSchedule(CronScheduleBuilder.CronSchedule("0 0 0/1 * * ? *").InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time"))) .ForJob("cancelNotRespondedSMSJob", "reminder") .Build(); // Azure Service Bus Job Trigger var coreproMessageTrigger = TriggerBuilder.Create() .WithIdentity("coreproMessageTrigger", "notification") .WithCronSchedule("0 0/5 * * * ?") //.StartNow() .ForJob("coreproMessageJob", "notification") .Build(); //Cancel chore after 24 hour of cutoff time var cancelChoreTrigger = TriggerBuilder.Create() .WithIdentity("cancelChoreTrigger", "cancelChore") //.WithCronSchedule("0 0/2 * * * ?") .StartNow() .ForJob("cancelPandingPaydayRequest", "cancelChore") .Build(); //Send -ve Balance Message Payday Not Proceeded var negativeBalancePaydayTrigger = TriggerBuilder.Create() .WithIdentity("negativeBalancePaydayTrigger", "cancelChore") .WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(10, 0, DayOfWeek.Thursday).InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))) .ForJob("SendMessagePaydayNotProceed", "cancelChore") .Build(); // Schedule the job using the jobs and triggers // scheduler.ScheduleJob(dailyChoresJob, dailyChoresTrigger); // Client told to stop this job // scheduler.ScheduleJob(weeklyChoresJob, weeklyChoresTrigger); // Client told to stop this job scheduler.ScheduleJob(makeWeeklyPaymentJob, makeWeeklyPaymentTrigger); scheduler.ScheduleJob(sendWeeklyPaydayStatusJob, sendWeeklyPaydayStatusTrigger); scheduler.ScheduleJob(notifyIncompleteMemberEnrollmentJob, notifyIncompleteNewMemberEnrollmentTrigger); scheduler.ScheduleJob(notifyParentHasNotLoggedInJob, notifyParentHasNotLoggedInTrigger); scheduler.ScheduleJob(renewSubscriptionJob, renewSubscriptionTrigger); //scheduler.ScheduleJob(notifyChildHasNotLoggedInJob, notifyChildHasNotLoggedInTrigger); // Client told to stop this job scheduler.ScheduleJob(notifyNoChoreCompletedJob, notifyNoChoreCompletedTrigger); scheduler.ScheduleJob(notifyContinuousChildActivityJob, notifyContinuousChildActivityTrigger); scheduler.ScheduleJob(notifySubscriptionRenewalJob, notifySubscriptionRenewalTrigger); scheduler.ScheduleJob(remindSMSApprovalJob, remindSMSApprovalTrigger); scheduler.ScheduleJob(cancelNotRespondedSMSJob, cancelNotRespondedSMSTrigger); scheduler.ScheduleJob(remindChorePaymentApprovalJob, remindChorePaymentApprovalTrigger); // scheduler.ScheduleJob(coreproMessageJob, coreproMessageTrigger); //scheduler.ScheduleJob(cancelPandingPaydayRequest, cancelChoreTrigger); //scheduler.ScheduleJob(SendMessagePaydayNotProceed, negativeBalancePaydayTrigger); }