| Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
| Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
+ DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler().Start();
+
+
+ public void CreateScheduler(string schedulerName, string schedulerInstanceId, IThreadPool threadPool, IJobStore jobStore)
+
+
+ // create the thread pool
+ SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, ThreadPriority.Normal);
+ threadPool.Initialize();
+ // create the job store
+ JobStore jobStore = new RAMJobStore();
+
+ DirectSchedulerFactory.Instance.CreateScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore);
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler("My Quartz Scheduler", "My Instance").Start();
+
+ Calendar would result in
+ | Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Object | +The string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +String | +The message from the thrown JobExecution Exception. + | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. (the time the misfire was detected/handled) | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The job completion time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Integer | +The trigger's resulting instruction code. | +
| 9 | +String | +A human-readable translation of the trigger's resulting instruction + code. | +
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Field Name | ++ | Allowed Values | ++ | Allowed Special Characters | +
|---|---|---|---|---|
| Seconds | ++ | 0-59 | ++ | , - /// / | +
| Minutes | ++ | 0-59 | ++ | , - /// / | +
| Hours | ++ | 0-23 | ++ | , - /// / | +
| Day-of-month | ++ | 1-31 | ++ | , - /// ? / L W C | +
| Month | ++ | 1-12 or JAN-DEC | ++ | , - /// / | +
| Day-of-Week | ++ | 1-7 or SUN-SAT | ++ | , - /// ? / L # | +
| Year (Optional) | ++ | empty, 1970-2199 | ++ | , - /// / | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithDailyTimeIntervalSchedule(x =>
+ x.WithIntervalInMinutes(15)
+ .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 0))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minutes))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Input Time | +Minute-Base | +Result Time | +
|---|---|---|
| 11:16:41 | +20 | +11:20:00 | +
| 11:36:41 | +20 | +11:40:00 | +
| 11:46:41 | +20 | +12:00:00 | +
| 11:26:41 | +30 | +11:30:00 | +
| 11:36:41 | +30 | +12:00:00 | +
| 11:16:41 | +17 | +11:17:00 | +
| 11:17:41 | +17 | +11:34:00 | +
| 11:52:41 | +17 | +12:00:00 | +
| 11:52:41 | +5 | +11:55:00 | +
| 11:57:41 | +5 | +12:00:00 | +
| 11:17:41 | +0 | +12:00:00 | +
| 11:17:41 | +1 | +11:08:00 | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ July August September
+ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
+ 1 W 1 2 3 4 5 W 1 2 W
+ W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W
+ W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W
+ W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W
+ W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30
+ W
+
+ Where W's represent weekend days, and H's represent holidays, all of which
+ are excluded on a calendar associated with an
+
+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY,
+ then the instruction will be interpreted as
+
+ Quartz Scheduler 'SchedulerName' with instanceId 'SchedulerInstanceId' Scheduler class: 'Quartz.Impl.StdScheduler' - running locally. Running since: '11:33am on Jul 19, 2002' Not currently paused. Number of Triggers fired: '123' Using thread pool 'Quartz.Simpl.SimpleThreadPool' - with '8' threads Using job-store 'Quartz.Impl.JobStore' - which supports persistence. ++
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
| Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
+ DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler().Start();
+
+
+ public void CreateScheduler(string schedulerName, string schedulerInstanceId, IThreadPool threadPool, IJobStore jobStore)
+
+
+ // create the thread pool
+ SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, ThreadPriority.Normal);
+ threadPool.Initialize();
+ // create the job store
+ JobStore jobStore = new RAMJobStore();
+
+ DirectSchedulerFactory.Instance.CreateScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore);
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler("My Quartz Scheduler", "My Instance").Start();
+
+ Calendar would result in
+ | Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Object | +The string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +String | +The message from the thrown JobExecution Exception. + | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. (the time the misfire was detected/handled) | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The job completion time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Integer | +The trigger's resulting instruction code. | +
| 9 | +String | +A human-readable translation of the trigger's resulting instruction + code. | +
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Field Name | ++ | Allowed Values | ++ | Allowed Special Characters | +
|---|---|---|---|---|
| Seconds | ++ | 0-59 | ++ | , - /// / | +
| Minutes | ++ | 0-59 | ++ | , - /// / | +
| Hours | ++ | 0-23 | ++ | , - /// / | +
| Day-of-month | ++ | 1-31 | ++ | , - /// ? / L W C | +
| Month | ++ | 1-12 or JAN-DEC | ++ | , - /// / | +
| Day-of-Week | ++ | 1-7 or SUN-SAT | ++ | , - /// ? / L # | +
| Year (Optional) | ++ | empty, 1970-2199 | ++ | , - /// / | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithDailyTimeIntervalSchedule(x =>
+ x.WithIntervalInMinutes(15)
+ .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 0))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minutes))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Input Time | +Minute-Base | +Result Time | +
|---|---|---|
| 11:16:41 | +20 | +11:20:00 | +
| 11:36:41 | +20 | +11:40:00 | +
| 11:46:41 | +20 | +12:00:00 | +
| 11:26:41 | +30 | +11:30:00 | +
| 11:36:41 | +30 | +12:00:00 | +
| 11:16:41 | +17 | +11:17:00 | +
| 11:17:41 | +17 | +11:34:00 | +
| 11:52:41 | +17 | +12:00:00 | +
| 11:52:41 | +5 | +11:55:00 | +
| 11:57:41 | +5 | +12:00:00 | +
| 11:17:41 | +0 | +12:00:00 | +
| 11:17:41 | +1 | +11:08:00 | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ July August September
+ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
+ 1 W 1 2 3 4 5 W 1 2 W
+ W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W
+ W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W
+ W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W
+ W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30
+ W
+
+ Where W's represent weekend days, and H's represent holidays, all of which
+ are excluded on a calendar associated with an
+
+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY,
+ then the instruction will be interpreted as
+
+ Quartz Scheduler 'SchedulerName' with instanceId 'SchedulerInstanceId' Scheduler class: 'Quartz.Impl.StdScheduler' - running locally. Running since: '11:33am on Jul 19, 2002' Not currently paused. Number of Triggers fired: '123' Using thread pool 'Quartz.Simpl.SimpleThreadPool' - with '8' threads Using job-store 'Quartz.Impl.JobStore' - which supports persistence. ++
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
| Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
+ DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler().Start();
+
+
+ public void CreateScheduler(string schedulerName, string schedulerInstanceId, IThreadPool threadPool, IJobStore jobStore)
+
+
+ // create the thread pool
+ SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, ThreadPriority.Normal);
+ threadPool.Initialize();
+ // create the job store
+ JobStore jobStore = new RAMJobStore();
+
+ DirectSchedulerFactory.Instance.CreateScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore);
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler("My Quartz Scheduler", "My Instance").Start();
+
+ Calendar would result in
+ | Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Object | +The string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +String | +The message from the thrown JobExecution Exception. + | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. (the time the misfire was detected/handled) | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The job completion time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Integer | +The trigger's resulting instruction code. | +
| 9 | +String | +A human-readable translation of the trigger's resulting instruction + code. | +
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Field Name | ++ | Allowed Values | ++ | Allowed Special Characters | +
|---|---|---|---|---|
| Seconds | ++ | 0-59 | ++ | , - /// / | +
| Minutes | ++ | 0-59 | ++ | , - /// / | +
| Hours | ++ | 0-23 | ++ | , - /// / | +
| Day-of-month | ++ | 1-31 | ++ | , - /// ? / L W C | +
| Month | ++ | 1-12 or JAN-DEC | ++ | , - /// / | +
| Day-of-Week | ++ | 1-7 or SUN-SAT | ++ | , - /// ? / L # | +
| Year (Optional) | ++ | empty, 1970-2199 | ++ | , - /// / | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithDailyTimeIntervalSchedule(x =>
+ x.WithIntervalInMinutes(15)
+ .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 0))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minutes))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Input Time | +Minute-Base | +Result Time | +
|---|---|---|
| 11:16:41 | +20 | +11:20:00 | +
| 11:36:41 | +20 | +11:40:00 | +
| 11:46:41 | +20 | +12:00:00 | +
| 11:26:41 | +30 | +11:30:00 | +
| 11:36:41 | +30 | +12:00:00 | +
| 11:16:41 | +17 | +11:17:00 | +
| 11:17:41 | +17 | +11:34:00 | +
| 11:52:41 | +17 | +12:00:00 | +
| 11:52:41 | +5 | +11:55:00 | +
| 11:57:41 | +5 | +12:00:00 | +
| 11:17:41 | +0 | +12:00:00 | +
| 11:17:41 | +1 | +11:08:00 | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ July August September
+ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
+ 1 W 1 2 3 4 5 W 1 2 W
+ W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W
+ W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W
+ W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W
+ W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30
+ W
+
+ Where W's represent weekend days, and H's represent holidays, all of which
+ are excluded on a calendar associated with an
+
+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY,
+ then the instruction will be interpreted as
+
+ Quartz Scheduler 'SchedulerName' with instanceId 'SchedulerInstanceId' Scheduler class: 'Quartz.Impl.StdScheduler' - running locally. Running since: '11:33am on Jul 19, 2002' Not currently paused. Number of Triggers fired: '123' Using thread pool 'Quartz.Simpl.SimpleThreadPool' - with '8' threads Using job-store 'Quartz.Impl.JobStore' - which supports persistence. ++
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
| Expression | ++ | Meaning | +
|---|---|---|
| "0 0 12 * * ?"" /> | ++ | Fire at 12pm (noon) every day" /> | +
| "0 15 10 ? * *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ?"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? *"" /> | ++ | Fire at 10:15am every day" /> | +
| "0 15 10 * * ? 2005"" /> | ++ | Fire at 10:15am every day during the year 2005" /> + | +
| "0 * 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:59pm, every day" /> + | +
| "0 0/5 14 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> + | +
| "0 0/5 14,18 * * ?"" /> | ++ | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" /> + | +
| "0 0-5 14 * * ?"" /> | ++ | Fire every minute starting at 2pm and ending at 2:05pm, every day" /> + | +
| "0 10,44 14 ? 3 WED"" /> | ++ | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> + | +
| "0 15 10 ? * MON-FRI"" /> | ++ | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> + | +
| "0 15 10 15 * ?"" /> | ++ | Fire at 10:15am on the 15th day of every month" /> + | +
| "0 15 10 L * ?"" /> | ++ | Fire at 10:15am on the last day of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L"" /> | ++ | Fire at 10:15am on the last Friday of every month" /> + | +
| "0 15 10 ? * 6L 2002-2005"" /> | ++ | Fire at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005" /> + | +
| "0 15 10 ? * 6#3"" /> | ++ | Fire at 10:15am on the third Friday of every month" /> + | +
+ DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler().Start();
+
+
+ public void CreateScheduler(string schedulerName, string schedulerInstanceId, IThreadPool threadPool, IJobStore jobStore)
+
+
+ // create the thread pool
+ SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, ThreadPriority.Normal);
+ threadPool.Initialize();
+ // create the job store
+ JobStore jobStore = new RAMJobStore();
+
+ DirectSchedulerFactory.Instance.CreateScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore);
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler("My Quartz Scheduler", "My Instance").Start();
+
+ Calendar would result in
+ | Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Object | +The string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +String | +The message from the thrown JobExecution Exception. + | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Job's Name. | +
| 1 | +String | +The Job's Group. | +
| 2 | +Date | +The current time. | +
| 3 | +String | +The Trigger's name. | +
| 4 | +String | +The Triggers's group. | +
| 5 | +Date | +The scheduled fire time. | +
| 6 | +Date | +The next scheduled fire time. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The actual fire time. (the time the misfire was detected/handled) | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| Element | +Data Type | +Description | +
|---|---|---|
| 0 | +String | +The Trigger's Name. | +
| 1 | +String | +The Trigger's Group. | +
| 2 | +Date | +The scheduled fire time. | +
| 3 | +Date | +The next scheduled fire time. | +
| 4 | +Date | +The job completion time. | +
| 5 | +String | +The Job's name. | +
| 6 | +String | +The Job's group. | +
| 7 | +Integer | +The re-fire count from the JobExecutionContext. | +
| 8 | +Integer | +The trigger's resulting instruction code. | +
| 9 | +String | +A human-readable translation of the trigger's resulting instruction + code. | +
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Field Name | ++ | Allowed Values | ++ | Allowed Special Characters | +
|---|---|---|---|---|
| Seconds | ++ | 0-59 | ++ | , - /// / | +
| Minutes | ++ | 0-59 | ++ | , - /// / | +
| Hours | ++ | 0-23 | ++ | , - /// / | +
| Day-of-month | ++ | 1-31 | ++ | , - /// ? / L W C | +
| Month | ++ | 1-12 or JAN-DEC | ++ | , - /// / | +
| Day-of-Week | ++ | 1-7 or SUN-SAT | ++ | , - /// ? / L # | +
| Year (Optional) | ++ | empty, 1970-2199 | ++ | , - /// / | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithDailyTimeIntervalSchedule(x =>
+ x.WithIntervalInMinutes(15)
+ .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 0))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = newTrigger()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minutes))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+ | Input Time | +Minute-Base | +Result Time | +
|---|---|---|
| 11:16:41 | +20 | +11:20:00 | +
| 11:36:41 | +20 | +11:40:00 | +
| 11:46:41 | +20 | +12:00:00 | +
| 11:26:41 | +30 | +11:30:00 | +
| 11:36:41 | +30 | +12:00:00 | +
| 11:16:41 | +17 | +11:17:00 | +
| 11:17:41 | +17 | +11:34:00 | +
| 11:52:41 | +17 | +12:00:00 | +
| 11:52:41 | +5 | +11:55:00 | +
| 11:57:41 | +5 | +12:00:00 | +
| 11:17:41 | +0 | +12:00:00 | +
| 11:17:41 | +1 | +11:08:00 | +
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x.WithIntervalInHours(1).RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ July August September
+ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
+ 1 W 1 2 3 4 5 W 1 2 W
+ W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W
+ W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W
+ W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W
+ W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30
+ W
+
+ Where W's represent weekend days, and H's represent holidays, all of which
+ are excluded on a calendar associated with an
+
+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY,
+ then the instruction will be interpreted as
+
+ Quartz Scheduler 'SchedulerName' with instanceId 'SchedulerInstanceId' Scheduler class: 'Quartz.Impl.StdScheduler' - running locally. Running since: '11:33am on Jul 19, 2002' Not currently paused. Number of Triggers fired: '123' Using thread pool 'Quartz.Simpl.SimpleThreadPool' - with '8' threads Using job-store 'Quartz.Impl.JobStore' - which supports persistence. ++
+ JobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ Trigger trigger = TriggerBuilder.Create()
+ .WithIdentity(triggerKey("myTrigger", "myTriggerGroup"))
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+
+ IJobDetail job = JobBuilder.Create<MyJob>()
+ .WithIdentity("myJob")
+ .Build();
+ ITrigger trigger = TriggerBuilder.Create()
+ .WithIdentity("myTrigger", "myTriggerGroup")
+ .WithSimpleSchedule(x => x
+ .WithIntervalInHours(1)
+ .RepeatForever())
+ .StartAt(DateBuilder.FutureDate(10, IntervalUnit.Minute))
+ .Build();
+ scheduler.scheduleJob(job, trigger);
+
+