public Schedule CreateSchedule(string automationAccountName, OneTimeSchedule schedule) { this.ValidateScheduleName(automationAccountName, schedule.Name); var scheduleModel = new AutomationManagement.Models.Schedule { Name = schedule.Name, StartTime = schedule.StartTime.ToUniversalTime(), ExpiryTime = schedule.ExpiryTime.ToUniversalTime(), Description = schedule.Description, ScheduleType = AutomationManagement.Models.ScheduleType .OneTimeSchedule }; var scheduleCreateParameters = new AutomationManagement.Models.ScheduleCreateParameters { Schedule = scheduleModel }; var scheduleCreateResponse = this.automationManagementClient.Schedules.Create( automationAccountName, scheduleCreateParameters); return(this.GetSchedule(automationAccountName, new Guid(scheduleCreateResponse.Schedule.Id))); }
private void Test(object sender, System.EventArgs e) { MessageBox.Show("Test will now create all types of schedules and opens Schedules View"); // create and add different types of schedules Schedule s = new IntervalSchedule("Test_Interval", DateTime.Now.AddMinutes(1), 45, TimeSpan.Zero, new TimeSpan(TimeSpan.TicksPerDay)); s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack); Scheduler.AddSchedule(s); s = new OneTimeSchedule("Test_Onetime", DateTime.Now.AddMinutes(1.5)); s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack); Scheduler.AddSchedule(s); s = new DailySchedule("Test_daily", DateTime.Now.AddMinutes(2)); s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack); Scheduler.AddSchedule(s); s = new WeeklySchedule("Test_weekly", DateTime.Now.AddMinutes(2.5)); s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack); Scheduler.AddSchedule(s); s = new MonthlySchedule("Test_monthly", DateTime.Now.AddMinutes(3)); s.OnTrigger += new EventScheduler.Invoke(ScheduleCallBack); Scheduler.AddSchedule(s); // kick off the Schedules View SchedulerUI.ShowSchedules(); }
private void buttonDelayButton_Click(object sender, EventArgs e) { MarconiRaceControllerLogic rcl = oblist.SelectedObject as MarconiRaceControllerLogic; if (rcl == null) { return; } foreach (var item in _raceQueue.Where(p => p.RaceScheduledStartTime >= DateTime.Now && p.RaceScheduledStartTime >= rcl.RaceScheduledStartTime).ToList()) { item.RaceScheduledStartTime = item.RaceScheduledStartTime.AddMinutes(5); var sched = Scheduler.GetSchedule(item.RaceName); Scheduler.RemoveSchedule(item.RaceName); OneTimeSchedule sc = new OneTimeSchedule(item.RaceName, item.RaceScheduledStartTime); sc.OnTrigger += Sc_OnTrigger; Scheduler.AddSchedule(sc); } oblist.SetObjects(_raceQueue, true); buttonDelayButton.Enabled = false; }
protected override void AutomationExecuteCmdlet() { // Assume local time if DateTimeKind.Unspecified if (this.StartTime.Kind == DateTimeKind.Unspecified) { this.StartTime = DateTime.SpecifyKind(this.StartTime, DateTimeKind.Local); } if (this.ExpiryTime.Kind == DateTimeKind.Unspecified) { this.ExpiryTime = DateTime.SpecifyKind(this.ExpiryTime, DateTimeKind.Local); } if (this.OneTime.IsPresent) { // ByOneTime var oneTimeSchedule = new OneTimeSchedule { Name = this.Name, StartTime = this.StartTime, Description = this.Description, ExpiryTime = this.ExpiryTime }; Schedule schedule = this.AutomationClient.CreateSchedule(this.AutomationAccountName, oneTimeSchedule); this.WriteObject(schedule); } else if (this.DayInterval >= 1) { // ByDaily var dailySchedule = new DailySchedule { Name = this.Name, StartTime = this.StartTime, DayInterval = this.DayInterval, Description = this.Description, ExpiryTime = this.ExpiryTime }; Schedule schedule = this.AutomationClient.CreateSchedule(this.AutomationAccountName, dailySchedule); this.WriteObject(schedule); } else if (this.HourInterval >= 1) { // ByHourly var hourlySchedule = new HourlySchedule { Name = this.Name, StartTime = this.StartTime, HourInterval = this.HourInterval, Description = this.Description, ExpiryTime = this.ExpiryTime }; Schedule schedule = this.AutomationClient.CreateSchedule(this.AutomationAccountName, hourlySchedule); this.WriteObject(schedule); } }
public void MisfireTriggerTest() { Debug.WriteLine("------- Scheduling Jobs -------------------"); var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset); // Set the job run time. DateTime rangeStart = DateTime.UtcNow; DateTime runTime = rangeStart.AddSeconds(1); var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero); // Define the job and tie it to our HelloJob class. JobDataMap jobDataMap = new JobDataMap((IDictionary <string, object>) new Dictionary <string, object> { { "SemHandle", semHandle } }); IJobDetail job = JobBuilder.Create <HelloJob>() .WithDescription("job1") .WithIdentity("job1", "group1") .UsingJobData(jobDataMap) .Build(); // Trigger the job to run on the set time. var trigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithItinerarySchedule(runSchedule, rangeStart, x => x.WithMisfireHandlingInstructionFireAndProceed()) .Build(); // Tell Quartz to schedule the job using our trigger. sched.ScheduleJob(job, trigger); var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First(); Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r"))); // Start up the scheduler. sched.Start(); Debug.WriteLine("------- Started Scheduler -----------------"); // Wait long enough so that the scheduler as an opportunity to // run the job. Debug.WriteLine("------- PauseAll(), wait 4s -------------"); sched.PauseAll(); Thread.Sleep(4000); Debug.WriteLine("------- ResumeAll(), expect job to run immediately -------------"); sched.ResumeAll(); // TODO: What does it take to get Quartz to drop a trigger event? Debug.WriteLine("------- Waiting a few seconds... -------------"); Assert.IsTrue(semHandle.WaitOne(5000)); }
public void OneTimeScheduleTriggerTest() { Debug.WriteLine("------- Scheduling Jobs -------------------"); var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset); // Set the job run time. DateTime rangeStart = DateTime.UtcNow; DateTime runTime = rangeStart.AddSeconds(1); var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero); // Define the job and tie it to our HelloJob class. JobDataMap jobDataMap = new JobDataMap((IDictionary <string, object>) new Dictionary <string, object> { { "SemHandle", semHandle } }); IJobDetail job = JobBuilder.Create <HelloJob>() .WithDescription("job1") .WithIdentity("job1", "group1") .UsingJobData(jobDataMap) .Build(); // Trigger the job to run on the set time. ITrigger trigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithItinerarySchedule(runSchedule, rangeStart) .Build(); // Tell Quartz to schedule the job using our trigger. sched.ScheduleJob(job, trigger); var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First(); Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r"))); // Start up the scheduler. sched.Start(); Debug.WriteLine("------- Started Scheduler -----------------"); // Wait long enough so that the scheduler as an opportunity to // run the job. Debug.WriteLine("------- Waiting a few seconds... -------------"); // Wait for job to signal. Assert.IsTrue(semHandle.WaitOne(5000)); }
//Start the application, creates each race. private void btStartRace_Click(object sender, EventArgs e) { if (dateTimePicker1.Value <= DateTime.Now.AddSeconds(10)) { DialogResult dialogResult = MessageBox.Show("The time of the first date is too soon or in the past. Select a valid time for the first race", "WARNING", MessageBoxButtons.OK); return; } panelStart.Visible = false; panel1.Visible = true; AllLightsOff(); int _races = int.Parse(this.textBox1.Text); DateTime _lastStartTime = dateTimePicker1.Value; panelButtons.Visible = true; panelRaces.Visible = true; for (int x = 1; x <= _races; x++) { MarconiRaceControllerLogic _newRace = new MarconiRaceControllerLogic(); _newRace.RaceName = "Race " + x.ToString(); _newRace.RaceScheduledStartTime = _lastStartTime; _newRace.BoardDriver = relayBoard; _newRace.InternalPlayer = _soundPlayer; OneTimeSchedule sc = new OneTimeSchedule("Race " + x.ToString(), _lastStartTime); sc.OnTrigger += Sc_OnTrigger; _raceQueue.Add(_newRace); Scheduler.AddSchedule(sc); _lastStartTime = _lastStartTime.AddMinutes(6); } oblist.SetObjects(_raceQueue, true); }
public void MisfireTriggerTest() { Debug.WriteLine("------- Scheduling Jobs -------------------"); var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset); // Set the job run time. DateTime rangeStart = DateTime.UtcNow; DateTime runTime = rangeStart.AddSeconds(1); var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero); // Define the job and tie it to our HelloJob class. JobDetail job = new JobDetail("job1", "group1", typeof(HelloJob)); job.JobDataMap["SemHandle"] = semHandle; // Trigger the job to run on the set time. var trigger = new ItineraryTrigger("trigger1", "group1", runSchedule, rangeStart); trigger.MisfireInstruction = ItineraryTriggerMisfireInstruction.RescheduleNowWithExistingCount; // Tell Quartz to schedule the job using our trigger. sched.ScheduleJob(job, trigger); var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First(); Debug.WriteLine(string.Format("{0} will start at: {1}", job.FullName, firstEvent.StartTime.ToString("r"))); // Start up the scheduler. sched.Start(); Debug.WriteLine("------- Started Scheduler -----------------"); // Wait long enough so that the scheduler as an opportunity to // run the job. Debug.WriteLine("------- PauseAll(), wait 4s -------------"); sched.PauseAll(); Thread.Sleep(4000); Debug.WriteLine("------- ResumeAll(), expect job to run immediately -------------"); sched.ResumeAll(); // TODO: What does it take to get Quartz to drop a trigger event? Debug.WriteLine("------- Waiting a few seconds... -------------"); Assert.IsTrue(semHandle.WaitOne(5000)); }
public void OneTimeScheduleTriggerTest() { Debug.WriteLine("------- Scheduling Jobs -------------------"); var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset); // Set the job run time. DateTime rangeStart = DateTime.UtcNow; DateTime runTime = rangeStart.AddSeconds(1); var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero); // Define the job and tie it to our HelloJob class. JobDetail job = new JobDetail("job1", "group1", typeof(HelloJob)); job.JobDataMap["SemHandle"] = semHandle; // Trigger the job to run on the set time. var trigger = new ItineraryTrigger("trigger1", "group1", runSchedule, rangeStart); // Tell Quartz to schedule the job using our trigger. sched.ScheduleJob(job, trigger); var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First(); Debug.WriteLine(string.Format("{0} will start at: {1}", job.FullName, firstEvent.StartTime.ToString("r"))); // Start up the scheduler. sched.Start(); Debug.WriteLine("------- Started Scheduler -----------------"); // Wait long enough so that the scheduler as an opportunity to // run the job. Debug.WriteLine("------- Waiting a few seconds... -------------"); // Wait for job to signal. Assert.IsTrue(semHandle.WaitOne(5000)); }
public static OneTimeSchedule CreateOneTimeSchedule(global::System.Guid scheduleID, global::System.Guid tenantID, string name, global::System.DateTime startTime, global::System.DateTime creationTime, global::System.DateTime lastModifiedTime, bool isEnabled) { OneTimeSchedule oneTimeSchedule = new OneTimeSchedule(); oneTimeSchedule.ScheduleID = scheduleID; oneTimeSchedule.TenantID = tenantID; oneTimeSchedule.Name = name; oneTimeSchedule.StartTime = startTime; oneTimeSchedule.CreationTime = creationTime; oneTimeSchedule.LastModifiedTime = lastModifiedTime; oneTimeSchedule.IsEnabled = isEnabled; return oneTimeSchedule; }
public void MisfireTriggerTest() { Debug.WriteLine("------- Scheduling Jobs -------------------"); var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset); // Set the job run time. DateTime rangeStart = DateTime.UtcNow; DateTime runTime = rangeStart.AddSeconds(1); var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero); // Define the job and tie it to our HelloJob class. JobDataMap jobDataMap = new JobDataMap((IDictionary<string, object>)new Dictionary<string, object> { { "SemHandle", semHandle } }); IJobDetail job = JobBuilder.Create<HelloJob>() .WithDescription("job1") .WithIdentity("job1", "group1") .UsingJobData(jobDataMap) .Build(); // Trigger the job to run on the set time. var trigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithItinerarySchedule(runSchedule, rangeStart, x => x.WithMisfireHandlingInstructionFireAndProceed()) .Build(); // Tell Quartz to schedule the job using our trigger. sched.ScheduleJob(job, trigger); var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First(); Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r"))); // Start up the scheduler. sched.Start(); Debug.WriteLine("------- Started Scheduler -----------------"); // Wait long enough so that the scheduler as an opportunity to // run the job. Debug.WriteLine("------- PauseAll(), wait 4s -------------"); sched.PauseAll(); Thread.Sleep(4000); Debug.WriteLine("------- ResumeAll(), expect job to run immediately -------------"); sched.ResumeAll(); // TODO: What does it take to get Quartz to drop a trigger event? Debug.WriteLine("------- Waiting a few seconds... -------------"); Assert.IsTrue(semHandle.WaitOne(5000)); }
public void OneTimeScheduleTriggerTest() { Debug.WriteLine("------- Scheduling Jobs -------------------"); var semHandle = new EventWaitHandle(false, EventResetMode.AutoReset); // Set the job run time. DateTime rangeStart = DateTime.UtcNow; DateTime runTime = rangeStart.AddSeconds(1); var runSchedule = new OneTimeSchedule(runTime, TimeSpan.Zero); // Define the job and tie it to our HelloJob class. JobDataMap jobDataMap = new JobDataMap((IDictionary<string, object>)new Dictionary<string, object> { { "SemHandle", semHandle } }); IJobDetail job = JobBuilder.Create<HelloJob>() .WithDescription("job1") .WithIdentity("job1", "group1") .UsingJobData(jobDataMap) .Build(); // Trigger the job to run on the set time. ITrigger trigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithItinerarySchedule(runSchedule, rangeStart) .Build(); // Tell Quartz to schedule the job using our trigger. sched.ScheduleJob(job, trigger); var firstEvent = runSchedule.GetRange(rangeStart, DateTime.MaxValue).First(); Debug.WriteLine(string.Format("{0} will start at: {1}", job.Description, firstEvent.StartTime.ToString("r"))); // Start up the scheduler. sched.Start(); Debug.WriteLine("------- Started Scheduler -----------------"); // Wait long enough so that the scheduler as an opportunity to // run the job. Debug.WriteLine("------- Waiting a few seconds... -------------"); // Wait for job to signal. Assert.IsTrue(semHandle.WaitOne(5000)); }
public bool AddSchedule(OneTimeSchedule schedule) { _context.OneTimeSchedules.Add(schedule); return(_context.SaveChanges() == 0); }
public bool RemoveSchedule(OneTimeSchedule schedule) { _context.OneTimeSchedules.Remove(schedule); return(_context.SaveChanges() == 0); }
private static void zConfigureOneTimeSchedule(List <TriggerBuilder> triggerBuilderList, OneTimeSchedule schedule) { SimpleScheduleBuilder sb = zCreateSimpleSchedule(schedule) .WithRepeatCount(0); triggerBuilderList.Add(TriggerBuilder.Create().WithSchedule(sb)); }