diff --git a/QuartzNetWebConsole.Views/JobWithContext.vb b/QuartzNetWebConsole.Views/JobWithContext.vb index 886903a..9d661b1 100644 --- a/QuartzNetWebConsole.Views/JobWithContext.vb +++ b/QuartzNetWebConsole.Views/JobWithContext.vb @@ -1,11 +1,11 @@ Imports Quartz Public Class JobWithContext - Public ReadOnly Job As JobDetail - Public ReadOnly JobContext As JobExecutionContext + Public ReadOnly Job As IJobDetail + Public ReadOnly JobContext As IJobExecutionContext Public ReadOnly Interruptible As Boolean - Public Sub New(ByVal job As JobDetail, ByVal jobContext As JobExecutionContext, ByVal interruptible As Boolean) + Public Sub New(ByVal job As IJobDetail, ByVal jobContext As IJobExecutionContext, ByVal interruptible As Boolean) If job Is Nothing Then Throw New ArgumentNullException("job") End If diff --git a/QuartzNetWebConsole.Views/TriggerWithState.vb b/QuartzNetWebConsole.Views/TriggerWithState.vb index c47d7c5..a03f290 100644 --- a/QuartzNetWebConsole.Views/TriggerWithState.vb +++ b/QuartzNetWebConsole.Views/TriggerWithState.vb @@ -1,10 +1,10 @@ Imports Quartz Public Class TriggerWithState - Public ReadOnly Trigger As Trigger + Public ReadOnly Trigger As ITrigger Public ReadOnly State As TriggerState - Public Sub New(ByVal trigger As Trigger, ByVal state As TriggerState) + Public Sub New(ByVal trigger As ITrigger, ByVal state As TriggerState) Me.Trigger = trigger Me.State = state End Sub diff --git a/QuartzNetWebConsole.Views/Views.vb b/QuartzNetWebConsole.Views/Views.vb index fc130ec..6f226e3 100644 --- a/QuartzNetWebConsole.Views/Views.vb +++ b/QuartzNetWebConsole.Views/Views.vb @@ -1,6 +1,7 @@ Imports MiniMVC Imports Quartz Imports System.Web +Imports Quartz.Impl.Triggers Public Module Views Public Function Pager(pagination As PaginationInfo) As XElement @@ -81,7 +82,7 @@ Public Module Views
Job store: <%= metadata.JobStoreType %>
Supports persistence: <%= YesNo(metadata.JobStoreSupportsPersistence) %>
- Number of jobs executed: <%= metadata.NumJobsExecuted %>
+ Number of jobs executed: <%= metadata.NumberOfJobsExecuted %>
Running since: <%= metadata.RunningSince %>
Status: <%= If(scheduler.InStandbyMode, "stand-by", "running") %>
@@ -107,7 +108,7 @@ Public Module Views Type - <%= From l In scheduler.SchedulerListeners.Cast(Of Object)() + <%= From l In scheduler.ListenerManager.GetSchedulerListeners() Select <%= l.GetType() %> @@ -276,32 +277,30 @@ Public Module Views Description Type Durable - Stateful - Volatile + Persist data after execution + Concurrent execution disallowed Requests recovery Running since - Listeners <%= From j In jobs Let op = Function(method As String) "scheduler.ashx?method=" + method + - "&jobName=" + j.Job.Name + - "&groupName=" + j.Job.Group + + "&jobName=" + j.Job.Key.Name + + "&groupName=" + j.Job.Key.Group + "&next=" + HttpUtility.UrlEncode(thisUrl) Select - - class=<%= If(highlight = j.Job.FullName, "highlight", "") %>> - <%= j.Job.Name %> + + class=<%= If(highlight = j.Job.Key.ToString(), "highlight", "") %>> + <%= j.Job.Key.Name %> <%= j.Job.Description %> <%= j.Job.JobType %> <%= YesNo(j.Job.Durable) %> - <%= YesNo(j.Job.Stateful) %> - <%= YesNo(j.Job.Volatile) %> + <%= YesNo(j.Job.PersistJobDataAfterExecution) %> + <%= YesNo(j.Job.ConcurrentExectionDisallowed) %> <%= YesNo(j.Job.RequestsRecovery) %> <%= j.JobContext.FireTimeUtc %> - <%= j.Job.JobListenerNames.Length %> - <%= SimpleForm(op("PauseJob"), "Pause") %> <%= SimpleForm(op("ResumeJob"), "Resume") %> @@ -356,27 +355,27 @@ Public Module Views <%= From tr In triggers Let trigger = tr.Trigger - Let high = highlight = trigger.FullName - Let simpleTrigger = TryCast(trigger, SimpleTrigger) - Let cronTrigger = TryCast(trigger, CronTrigger) + Let high = highlight = trigger.Key.ToString() + Let simpleTrigger = TryCast(trigger, SimpleTriggerImpl) + Let cronTrigger = TryCast(trigger, CronTriggerImpl) Let op = Function(method As String) "scheduler.ashx?method=" & method & - "&triggerName=" + trigger.Name + - "&groupName=" + trigger.Group + + "&triggerName=" + trigger.Key.Name + + "&groupName=" + trigger.Key.Group + "&next=" + HttpUtility.UrlEncode(thisUrl) Select - - class=<%= If(highlight = trigger.FullName, highlight, "") %>> - <%= trigger.Name %> + + class=<%= If(highlight = trigger.Key.ToString(), highlight, "") %>> + <%= trigger.Key.Name %> <%= trigger.Description %> <%= trigger.Priority %> - > - <%= trigger.JobGroup %> + > + <%= trigger.JobKey.Group %> <%= trigger.StartTimeUtc %> diff --git a/QuartzNetWebConsole/AbstractLogger.cs b/QuartzNetWebConsole/AbstractLogger.cs index d9dc1eb..7ab1c74 100644 --- a/QuartzNetWebConsole/AbstractLogger.cs +++ b/QuartzNetWebConsole/AbstractLogger.cs @@ -8,43 +8,37 @@ namespace QuartzNetWebConsole { public abstract class AbstractLogger : ILogger { - public virtual void JobScheduled(Trigger trigger) {} - - public virtual void JobUnscheduled(string triggerName, string triggerGroup) {} - - public virtual void TriggerFinalized(Trigger trigger) {} - - public virtual void TriggersPaused(string triggerName, string triggerGroup) {} - - public virtual void TriggersResumed(string triggerName, string triggerGroup) {} - - public virtual void JobsPaused(string jobName, string jobGroup) {} - - public virtual void JobsResumed(string jobName, string jobGroup) {} - - public virtual void SchedulerError(string msg, SchedulerException cause) {} - - public virtual void SchedulerShutdown() {} + public virtual void JobToBeExecuted(IJobExecutionContext context) { + throw new NotImplementedException(); + } - public virtual void JobToBeExecuted(JobExecutionContext context) {} + public virtual void JobExecutionVetoed(IJobExecutionContext context) { + throw new NotImplementedException(); + } - public virtual void JobExecutionVetoed(JobExecutionContext context) {} + public virtual void JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException) { + throw new NotImplementedException(); + } - public virtual void JobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {} + public virtual void TriggerComplete(ITrigger trigger, IJobExecutionContext context, SchedulerInstruction triggerInstructionCode) { + throw new NotImplementedException(); + } string IJobListener.Name { get { return "QuartzNetWebConsole.Logger"; } } - public virtual void TriggerFired(Trigger trigger, JobExecutionContext context) {} + public virtual void TriggerFired(ITrigger trigger, IJobExecutionContext context) { + throw new NotImplementedException(); + } - public bool VetoJobExecution(Trigger trigger, JobExecutionContext context) { + public bool VetoJobExecution(ITrigger trigger, IJobExecutionContext context) { return false; } - public virtual void TriggerMisfired(Trigger trigger) {} - - public virtual void TriggerComplete(Trigger trigger, JobExecutionContext context, SchedulerInstruction triggerInstructionCode) {} + public virtual void TriggerMisfired(ITrigger trigger) { + throw new NotImplementedException(); + } string ITriggerListener.Name { get { return "QuartzNetWebConsole.Logger"; } @@ -59,5 +53,62 @@ IEnumerator IEnumerable.GetEnumerator() { public abstract Expression Expression { get; } public abstract Type ElementType { get; } public abstract IQueryProvider Provider { get; } + public virtual void JobScheduled(ITrigger trigger) { + + } + + public virtual void JobUnscheduled(TriggerKey triggerKey) { + } + + public virtual void TriggerFinalized(ITrigger trigger) { + } + + public virtual void TriggerPaused(TriggerKey triggerKey) { + } + + public virtual void TriggersPaused(string triggerGroup) { + } + + public virtual void TriggerResumed(TriggerKey triggerKey) { + } + + public virtual void TriggersResumed(string triggerGroup) { + } + + public virtual void JobAdded(IJobDetail jobDetail) { + } + + public virtual void JobDeleted(JobKey jobKey) { + } + + public virtual void JobPaused(JobKey jobKey) { + } + + public virtual void JobsPaused(string jobGroup) { + } + + public virtual void JobResumed(JobKey jobKey) { + } + + public virtual void JobsResumed(string jobGroup) { + } + + public virtual void SchedulerError(string msg, SchedulerException cause) { + } + + public virtual void SchedulerInStandbyMode() { + } + + public virtual void SchedulerStarted() { + } + + public virtual void SchedulerShutdown() { + } + + public virtual void SchedulerShuttingdown() { + } + + public virtual void SchedulingDataCleared() { + } } } \ No newline at end of file diff --git a/QuartzNetWebConsole/Controllers/IndexController.cs b/QuartzNetWebConsole/Controllers/IndexController.cs index ced9b2f..ff416a1 100644 --- a/QuartzNetWebConsole/Controllers/IndexController.cs +++ b/QuartzNetWebConsole/Controllers/IndexController.cs @@ -10,23 +10,24 @@ public class IndexController : Controller { private readonly IScheduler scheduler = Setup.Scheduler(); public override void Execute(HttpContextBase context) { - var triggerGroups = scheduler.TriggerGroupNames + var triggerGroups = scheduler.GetTriggerGroupNames() .Select(t => new GroupWithStatus(t, scheduler.IsTriggerGroupPaused(t))) .ToArray(); - var jobGroups = scheduler.JobGroupNames + + var jobGroups = scheduler.GetJobGroupNames() .Select(j => new GroupWithStatus(j, scheduler.IsJobGroupPaused(j))) .ToArray(); - var calendars = scheduler.CalendarNames + + var calendars = scheduler.GetCalendarNames() .Select(name => Helpers.KV(name, scheduler.GetCalendar(name).Description)) .ToArray(); - var jobListeners = scheduler.GlobalJobListeners - .Cast() + + var jobListeners = scheduler.ListenerManager.GetJobListeners() .Select(j => Helpers.KV(j.Name, j.GetType())) .ToArray(); - var triggerListeners = scheduler.GlobalTriggerListeners - .Cast() + var triggerListeners = scheduler.ListenerManager.GetTriggerListeners() .Select(j => Helpers.KV(j.Name, j.GetType())) .ToArray(); diff --git a/QuartzNetWebConsole/Controllers/JobGroupController.cs b/QuartzNetWebConsole/Controllers/JobGroupController.cs index 2defed1..8aa2e5a 100644 --- a/QuartzNetWebConsole/Controllers/JobGroupController.cs +++ b/QuartzNetWebConsole/Controllers/JobGroupController.cs @@ -3,6 +3,7 @@ using System.Xml.Linq; using MiniMVC; using Quartz; +using Quartz.Impl.Matchers; using QuartzNetWebConsole.Views; namespace QuartzNetWebConsole.Controllers { @@ -11,12 +12,12 @@ public class JobGroupController : Controller { public override void Execute(HttpContextBase context) { var group = context.Request.QueryString["group"]; - var jobNames = scheduler.GetJobNames(group); - var runningJobs = scheduler.GetCurrentlyExecutingJobs().Cast(); + var jobNames = scheduler.GetJobKeys(GroupMatcher.GroupEquals(group)); + var runningJobs = scheduler.GetCurrentlyExecutingJobs(); var jobs = jobNames.Select(j => { - var job = scheduler.GetJobDetail(j, group); + var job = scheduler.GetJobDetail(j); var interruptible = typeof (IInterruptableJob).IsAssignableFrom(job.JobType); - var jobContext = runningJobs.FirstOrDefault(r => r.JobDetail.FullName == job.FullName); + var jobContext = runningJobs.FirstOrDefault(r => r.JobDetail.Key.ToString() == job.Key.ToString()); return new JobWithContext(job, jobContext, interruptible); }); var paused = scheduler.IsJobGroupPaused(group); diff --git a/QuartzNetWebConsole/Controllers/TriggerGroupController.cs b/QuartzNetWebConsole/Controllers/TriggerGroupController.cs index 0150394..ae0254b 100644 --- a/QuartzNetWebConsole/Controllers/TriggerGroupController.cs +++ b/QuartzNetWebConsole/Controllers/TriggerGroupController.cs @@ -3,6 +3,7 @@ using System.Xml.Linq; using MiniMVC; using Quartz; +using Quartz.Impl.Matchers; using QuartzNetWebConsole.Views; namespace QuartzNetWebConsole.Controllers { @@ -11,11 +12,11 @@ public class TriggerGroupController : Controller { public override void Execute(HttpContextBase context) { var group = context.Request.QueryString["group"]; - var triggerNames = scheduler.GetTriggerNames(group); - var triggers = triggerNames + var triggerKeys = scheduler.GetTriggerKeys(GroupMatcher.GroupEquals(group)); + var triggers = triggerKeys .Select(t => { - var trigger = scheduler.GetTrigger(t, group); - var state = scheduler.GetTriggerState(t, group); + var trigger = scheduler.GetTrigger(t); + var state = scheduler.GetTriggerState(t); return new TriggerWithState(trigger, state); }); var thisUrl = context.Request.RawUrl; diff --git a/QuartzNetWebConsole/Controllers/TriggersByJobController.cs b/QuartzNetWebConsole/Controllers/TriggersByJobController.cs index de7c5cf..17fec32 100644 --- a/QuartzNetWebConsole/Controllers/TriggersByJobController.cs +++ b/QuartzNetWebConsole/Controllers/TriggersByJobController.cs @@ -12,10 +12,11 @@ public class TriggersByJobController : Controller { public override void Execute(HttpContextBase context) { var group = context.Request.QueryString["group"]; var job = context.Request.QueryString["job"]; + var jobKey = new JobKey(job, group); var thisUrl = context.Request.RawUrl; - var triggers = scheduler.GetTriggersOfJob(job, group) + var triggers = scheduler.GetTriggersOfJob(jobKey) .Select(t => { - var state = scheduler.GetTriggerState(t.Name, t.Group); + var state = scheduler.GetTriggerState(t.Key); return new TriggerWithState(t, state); }); var highlight = context.Request.QueryString["highlight"]; diff --git a/QuartzNetWebConsole/MemoryLogger.cs b/QuartzNetWebConsole/MemoryLogger.cs index 927b742..0658cf8 100644 --- a/QuartzNetWebConsole/MemoryLogger.cs +++ b/QuartzNetWebConsole/MemoryLogger.cs @@ -23,35 +23,15 @@ public MemoryLogger(int capacity) { entries = new LimitedList(capacity); } - public override void JobScheduled(Trigger trigger) { - var desc = string.Format("Job {0} scheduled with trigger {1}", DescribeJob(trigger.JobGroup, trigger.JobName), Describe(trigger)); + public override void JobScheduled(ITrigger trigger) { + var desc = string.Format("Job {0} scheduled with trigger {1}", DescribeJob(trigger.JobKey.Group, trigger.JobKey.Name), Describe(trigger)); entries.Add(new LogEntry(desc)); } - public override void JobUnscheduled(string triggerName, string triggerGroup) { - entries.Add(new LogEntry("Trigger removed: " + DescribeTrigger(triggerGroup, triggerName))); - } - - public override void TriggerFinalized(Trigger trigger) { + public override void TriggerFinalized(ITrigger trigger) { entries.Add(new LogEntry("Trigger finalized: " + Describe(trigger))); } - public override void TriggersPaused(string triggerName, string triggerGroup) { - entries.Add(new LogEntry("Trigger paused: " + DescribeTrigger(triggerGroup, triggerName))); - } - - public override void TriggersResumed(string triggerName, string triggerGroup) { - entries.Add(new LogEntry("Trigger resumed: " + DescribeTrigger(triggerGroup, triggerName))); - } - - public override void JobsPaused(string jobName, string jobGroup) { - entries.Add(new LogEntry("Job paused: " + DescribeJob(jobGroup, jobName))); - } - - public override void JobsResumed(string jobName, string jobGroup) { - entries.Add(new LogEntry("Job resumed: " + DescribeJob(jobGroup, jobName))); - } - public override void SchedulerError(string msg, SchedulerException cause) { entries.Add(new LogEntry(string.Format("Scheduler error:
{0}

{1}
", HttpUtility.HtmlEncode(msg), @@ -62,30 +42,30 @@ public override void SchedulerShutdown() { entries.Add(new LogEntry("Scheduler shutdown")); } - public override void JobToBeExecuted(JobExecutionContext context) { + public override void JobToBeExecuted(IJobExecutionContext context) { entries.Add(new LogEntry("Job to be executed: " + Describe(context))); } - public override void JobExecutionVetoed(JobExecutionContext context) { + public override void JobExecutionVetoed(IJobExecutionContext context) { entries.Add(new LogEntry("Job execution vetoed: " + Describe(context))); } - public override void JobWasExecuted(JobExecutionContext context, JobExecutionException jobException) { + public override void JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException) { var description = "Job was executed: " + Describe(context); if (jobException != null) description += string.Format("
with exception:
{0}
", HttpUtility.HtmlEncode(jobException.ToString())); entries.Add(new LogEntry(description)); } - public override void TriggerFired(Trigger trigger, JobExecutionContext context) { + public override void TriggerFired(ITrigger trigger, IJobExecutionContext context) { entries.Add(new LogEntry("Job fired: " + Describe(context))); } - public override void TriggerMisfired(Trigger trigger) { + public override void TriggerMisfired(ITrigger trigger) { entries.Add(new LogEntry("Job misfired: " + Describe(trigger))); } - public override void TriggerComplete(Trigger trigger, JobExecutionContext context, SchedulerInstruction triggerInstructionCode) { + public override void TriggerComplete(ITrigger trigger, IJobExecutionContext context, SchedulerInstruction triggerInstructionCode) { entries.Add(new LogEntry("Job complete: " + Describe(context))); } @@ -115,13 +95,13 @@ private string LinkJob(string group, string name) { return Link(string.Format("jobGroup.ashx?group={0}&highlight={0}.{1}#{0}.{1}", group, name), name); } - private string Describe(Trigger trigger) { - return string.Format("{0}.{1}", LinkTriggerGroup(trigger.Group), LinkTrigger(trigger.Group, trigger.Name)); + private string Describe(ITrigger trigger) { + return string.Format("{0}.{1}", LinkTriggerGroup(trigger.Key.Group), LinkTrigger(trigger.Key.Group, trigger.Key.Name)); } - private string Describe(JobExecutionContext context) { + private string Describe(IJobExecutionContext context) { var job = context.JobDetail; - return string.Format("{0}.{1} (trigger {2})", LinkJobGroup(job.Group), LinkJob(job.Group, job.Name), Describe(context.Trigger)); + return string.Format("{0}.{1} (trigger {2})", LinkJobGroup(job.Key.Group), LinkJob(job.Key.Group, job.Key.Name), Describe(context.Trigger)); } private string DescribeTrigger(string group, string name) { diff --git a/QuartzNetWebConsole/QuartzNetWebConsole.csproj b/QuartzNetWebConsole/QuartzNetWebConsole.csproj index c2ad369..d1f7750 100644 --- a/QuartzNetWebConsole/QuartzNetWebConsole.csproj +++ b/QuartzNetWebConsole/QuartzNetWebConsole.csproj @@ -42,7 +42,7 @@ False ..\lib\MiniMVC.dll - + False ..\lib\Quartz.dll diff --git a/QuartzNetWebConsole/Setup.cs b/QuartzNetWebConsole/Setup.cs index ab73163..de45484 100644 --- a/QuartzNetWebConsole/Setup.cs +++ b/QuartzNetWebConsole/Setup.cs @@ -18,14 +18,17 @@ public static ILogger Logger { set { var scheduler = Scheduler(); if (logger != null) { - scheduler.RemoveGlobalJobListener(logger); - scheduler.RemoveGlobalTriggerListener(logger); - scheduler.RemoveSchedulerListener(logger); + IJobListener jobListener = logger; + ITriggerListener triggerListener = logger; + scheduler.ListenerManager.RemoveJobListener(jobListener.Name); + scheduler.ListenerManager.RemoveTriggerListener(triggerListener.Name); + scheduler.ListenerManager.RemoveSchedulerListener(logger); } if (value != null) { - scheduler.AddGlobalJobListener(value); - scheduler.AddGlobalTriggerListener(value); - scheduler.AddSchedulerListener(value); + scheduler.ListenerManager.AddJobListener(value); + //scheduler.ListenerManager.AddJobListenerMatcher() + scheduler.ListenerManager.AddTriggerListener(value); + scheduler.ListenerManager.AddSchedulerListener(value); } logger = value; } diff --git a/SampleApp/DummyCalendar.cs b/SampleApp/DummyCalendar.cs index bbac078..15c64b7 100644 --- a/SampleApp/DummyCalendar.cs +++ b/SampleApp/DummyCalendar.cs @@ -3,16 +3,19 @@ namespace SampleApp { public class DummyCalendar : ICalendar { - public bool IsTimeIncluded(DateTime timeUtc) { + public bool IsTimeIncluded(DateTimeOffset timeUtc) { return false; } - public DateTime GetNextIncludedTimeUtc(DateTime timeUtc) { + public DateTimeOffset GetNextIncludedTimeUtc(DateTimeOffset timeUtc) { return timeUtc; } public string Description { get; set; } public ICalendar CalendarBase { get; set; } + public object Clone() { + return this; + } } } \ No newline at end of file diff --git a/SampleApp/Global.asax.cs b/SampleApp/Global.asax.cs index 0e170e3..0c140ca 100644 --- a/SampleApp/Global.asax.cs +++ b/SampleApp/Global.asax.cs @@ -20,20 +20,26 @@ protected void Application_Start(object sender, EventArgs e) { Setup.Logger = new MemoryLogger(1000, partialQuartzConsoleUrl); // I'll add some global listeners - scheduler.AddGlobalJobListener(new GlobalJobListener()); - scheduler.AddGlobalTriggerListener(new GlobalTriggerListener()); + scheduler.ListenerManager.AddJobListener(new GlobalJobListener()); + scheduler.ListenerManager.AddTriggerListener(new GlobalTriggerListener()); // A sample trigger and job - var trigger = TriggerUtils.MakeSecondlyTrigger(6); - trigger.StartTimeUtc = DateTime.UtcNow; - trigger.Name = "myTrigger"; - scheduler.ScheduleJob(new JobDetail("myJob", null, typeof(HelloJob)), trigger); + var trigger = TriggerBuilder.Create() + .WithIdentity("myTrigger") + .WithSchedule(DailyTimeIntervalScheduleBuilder.Create() + .WithIntervalInSeconds(6)) + .StartNow() + .Build(); + var job = new JobDetailImpl("myJob", null, typeof (HelloJob)); + scheduler.ScheduleJob(job, trigger); // A cron trigger and job - var cron = new CronTrigger("myCronTrigger") { - CronExpression = new CronExpression("0/10 * * * * ?"), // every 10 seconds - JobName = "myJob", - }; + var cron = TriggerBuilder.Create() + .WithIdentity("myCronTrigger") + .ForJob(job.Key) + .WithCronSchedule("0/10 * * * * ?") // every 10 seconds + .Build(); + scheduler.ScheduleJob(cron); // A dummy calendar diff --git a/SampleApp/GlobalJobListener.cs b/SampleApp/GlobalJobListener.cs index 4fc5ac7..87fdd76 100644 --- a/SampleApp/GlobalJobListener.cs +++ b/SampleApp/GlobalJobListener.cs @@ -6,13 +6,13 @@ namespace SampleApp { /// A sample dummy global job listener /// public class GlobalJobListener : IJobListener { - public void JobToBeExecuted(JobExecutionContext context) { + public void JobToBeExecuted(IJobExecutionContext context) { } - public void JobExecutionVetoed(JobExecutionContext context) { + public void JobExecutionVetoed(IJobExecutionContext context) { } - public void JobWasExecuted(JobExecutionContext context, JobExecutionException jobException) { + public void JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException) { } public string Name { diff --git a/SampleApp/GlobalTriggerListener.cs b/SampleApp/GlobalTriggerListener.cs index 85b637d..bcd7729 100644 --- a/SampleApp/GlobalTriggerListener.cs +++ b/SampleApp/GlobalTriggerListener.cs @@ -5,15 +5,15 @@ namespace SampleApp { /// A sample dummy global trigger listener /// public class GlobalTriggerListener : ITriggerListener { - public void TriggerFired(Trigger trigger, JobExecutionContext context) {} + public void TriggerFired(ITrigger trigger, IJobExecutionContext context) {} - public bool VetoJobExecution(Trigger trigger, JobExecutionContext context) { + public bool VetoJobExecution(ITrigger trigger, IJobExecutionContext context) { return false; } - public void TriggerMisfired(Trigger trigger) {} + public void TriggerMisfired(ITrigger trigger) {} - public void TriggerComplete(Trigger trigger, JobExecutionContext context, SchedulerInstruction triggerInstructionCode) {} + public void TriggerComplete(ITrigger trigger, IJobExecutionContext context, SchedulerInstruction triggerInstructionCode) {} public string Name { get { return GetType().FullName; } diff --git a/SampleApp/HelloJob.cs b/SampleApp/HelloJob.cs index 522f3b9..6699a6d 100644 --- a/SampleApp/HelloJob.cs +++ b/SampleApp/HelloJob.cs @@ -6,8 +6,9 @@ namespace SampleApp { /// /// A sample dummy job /// - public class HelloJob : IStatefulJob { - public void Execute(JobExecutionContext context) { + [DisallowConcurrentExecution] + public class HelloJob : IJob { + public void Execute(IJobExecutionContext context) { Thread.Sleep(5000); } } diff --git a/SampleApp/SampleApp.csproj b/SampleApp/SampleApp.csproj index 82d1fe2..4e2c048 100644 --- a/SampleApp/SampleApp.csproj +++ b/SampleApp/SampleApp.csproj @@ -17,6 +17,7 @@ 3.5 + false true @@ -36,8 +37,13 @@ 4 - - False + + ..\lib\C5.dll + + + ..\lib\Common.Logging.dll + + ..\lib\Quartz.dll diff --git a/lib/C5.dll b/lib/C5.dll new file mode 100644 index 0000000..2130d1f Binary files /dev/null and b/lib/C5.dll differ diff --git a/lib/Common.Logging.dll b/lib/Common.Logging.dll index c92b347..5c1feac 100644 Binary files a/lib/Common.Logging.dll and b/lib/Common.Logging.dll differ diff --git a/lib/Quartz.dll b/lib/Quartz.dll index b65ee66..c7d9e64 100644 Binary files a/lib/Quartz.dll and b/lib/Quartz.dll differ diff --git a/lib/Quartz.pdb b/lib/Quartz.pdb new file mode 100644 index 0000000..e95389f Binary files /dev/null and b/lib/Quartz.pdb differ diff --git a/lib/Quartz.xml b/lib/Quartz.xml index 76eeeb5..de320e2 100644 --- a/lib/Quartz.xml +++ b/lib/Quartz.xml @@ -4,248 +4,302 @@ Quartz - + - Collection manipulation related utility methods. + A wrapper for generic HashSet that brings a common interface. + - + - Removes the specified item from list of items and returns - whether removal was success. + Represents a collection ob objects that contains no duplicate elements. + + Marko Lahma (.NET) + + + + A sorted set. - The items to remove from. - The item to remove. - + Marko Lahma (.NET) - + - A hash based set. + Returns a portion of the list whose elements are greater than the limit object parameter. + The start element of the portion to extract. + The portion of the collection whose elements are greater than the limit object parameter. - + - Represents a collection ob objects that contains no duplicate elements. - + Returns the first item in the set. + + First object. - + - Adds a new element to the Collection if it is not already present. + Returns the object in the specified index. - The object to add to the collection. - Returns true if the object was added to the collection, otherwise false. + + - + - Adds all the elements of the specified collection to the Set. + Simple C5 wrapper for common interface. - Collection of objects to add. - true + - + - Returns the first item in the set. + Default constructor. - First object. - + - Initializes a new instance of the class. + Constructor that accepts comparer. + Comparer to use. - + - Initializes a new instance of the class. + Constructor that prepolutates. - The whose elements are copied to the new list. - - is . + - + - Initializes a new instance of the class. + Returns the first element. - The capacity. + - + - Unmodifiables the hash set. + Return items from given range. - The collection. + - + - Adds a new element to the ArrayList if it is not already present. - - Element to insert to the ArrayList. - Returns true if the new element was inserted, false otherwise. + Indexer. + + + - + - Adds all the elements of the specified collection that are not present to the list. + Only for backwards compatibility with serialization! - Collection where the new elements will be added - Returns true if at least one element was added, false otherwise. - + - Returns the first item in the set. + Responsible for creating the instances of + to be used within the instance. - First object. + James House + Marko Lahma (.NET) - + - Returns a copy of the HashSet instance. - - Returns a shallow copy of the current HashSet. + Initialize the factory, providing a handle to the + that should be made available within the and + the s within it. + - + - A sorted set. + Called by the + to obtain instances of . + + + + + JobRunShell instances are responsible for providing the 'safe' environment + for s to run in, and for performing all of the work of + executing the , catching ANY thrown exceptions, updating + the with the 's completion code, + etc. + + A instance is created by a + on behalf of the which then runs the + shell in a thread from the configured when the + scheduler determines that a has been triggered. + + + + + + James House + Marko Lahma (.NET) - + - Returns a portion of the list whose elements are greater than the limit object parameter. + A helpful abstract base class for implementors of + . - The start element of the portion to extract. - The portion of the collection whose elements are greater than the limit object parameter. + + The methods in this class are empty so you only need to override the + subset for the events you care about. + + Marko Lahma (.NET) + - + - SupportClass for the TreeSet class. + The interface to be implemented by classes that want to be informed of major + events. + + + + James House + Marko Lahma (.NET) - + - Initializes a new instance of the class. + Called by the when a + is scheduled. - + - Initializes a new instance of the class. + Called by the when a + is unscheduled. + + + + + + Called by the when a + has reached the condition in which it will never fire again. - The whose elements are copied to the new list. - - is . - + - Initializes a new instance of the class. + Called by the a s has been paused. - The c. - + - Unmodifiables the tree set. + Called by the a group of + s has been paused. - The collection. - + + If a all groups were paused, then the parameter + will be null. + + The trigger group. - + - Adds a new element to the ArrayList if it is not already present and sorts the ArrayList. + Called by the when a + has been un-paused. - Element to insert to the ArrayList. - TRUE if the new element was inserted, FALSE otherwise. - + - Adds all the elements of the specified collection that are not present to the list. - - Collection where the new elements will be added - Returns true if at least one element was added to the collection. + Called by the when a + group of s has been un-paused. + + + If all groups were resumed, then the parameter + will be null. + + The trigger group. - + - Returns the first item in the set. + Called by the when a + has been added. - First object. + - + - Determines whether an element is in the the current TreeSetSupport collection. The IComparer defined for - the current set will be used to make comparisons between the elements already inserted in the collection and - the item specified. + Called by the when a + has been deleted. - The object to be locatet in the current collection. - true if item is found in the collection; otherwise, false. - + - Returns a portion of the list whose elements are greater than the limit object parameter. + Called by the when a + has been paused. - The start element of the portion to extract. - The portion of the collection whose elements are greater than the limit object parameter. - + - Gets the IComparator object used to sort this set. + Called by the when a + group of s has been paused. + + If all groups were paused, then the parameter will be + null. If all jobs were paused, then both parameters will be null. + + The job group. - + - Responsible for creating the instances of - to be used within the instance. + Called by the when a + has been un-paused. - - Although this interface looks a lot like an 'object pool', implementations - do not have to support the re-use of instances. If an implementation does - not wish to pool instances, then the - method would simply create a new instance, and the - method would do nothing. - - James House - Marko Lahma (.NET) - + - Initialize the factory, providing a handle to the - that should be made available within the and - the s within it, and a handle to the - that the shell will use in its own - operations with the . + Called by the when a + has been un-paused. + + The job group. + + + + Called by the when a serious error has + occurred within the scheduler - such as repeated failures in the , + or the inability to instantiate a instance when its + has fired. - + - Called by the - to obtain instances of . + Called by the to inform the listener + that it has move to standby mode. - + - Called by the - to return instances of . + Called by the to inform the listener + that it has started. - + - JobRunShell instances are responsible for providing the 'safe' environment - for s to run in, and for performing all of the work of - executing the , catching ANY thrown exceptions, updating - the with the 's completion code, - etc. -

- A instance is created by a - on behalf of the which then runs the - shell in a thread from the configured when the - scheduler determines that a has been triggered. -

+ Called by the to inform the listener + that it has Shutdown. +
+
+ + + Called by the to inform the listener + that it has begun the shutdown sequence. + + + + + Called by the to inform the listener + that all jobs, triggers and calendars were deleted. + + + + + Get the for this + type's category. This should be used by subclasses for logging. - - - - - James House - Marko Lahma (.NET) This interface should be implemented by any class whose instances are intended to be executed by a thread. + Marko Lahma (.NET) @@ -253,23 +307,19 @@ run method to be called in that separately executing thread. - + Create a JobRunShell instance with the given settings. - A handle to the that produced - this . The instance that should be made - available within the . - the that should be used by the - when making updates to the . + available within the . + - + Initializes the job execution context with given scheduler and bundle. The scheduler. - The bundle offired triggers. @@ -298,7 +348,7 @@ Passivates this instance. - + Completes the trigger retry loop. @@ -307,7 +357,7 @@ The inst code. - + Vetoeds the job retry loop. @@ -316,195 +366,421 @@ The inst code. - + - This is the heart of Quartz, an indirect implementation of the - interface, containing methods to schedule s, - register instances, etc. + Default concrete implementation of . - - - - - James House - Marko Lahma (.NET) - + - Starts this instance. + Client programs may be interested in the 'listener' interfaces that are + available from Quartz. The interface + provides notifications of Job executions. The + interface provides notifications of + firings. The + interface provides notifications of scheduler events and + errors. Listeners can be associated with local schedulers through the + interface. + + + jhouse + 2.0 - previously listeners were managed directly on the Scheduler interface. - + - Standbies this instance. + Add the given to the, + and register it to receive events for Jobs that are matched by ANY of the + given Matchers. + + If no matchers are provided, the will be used. + + + - + - Shutdowns this instance. + Add the given to the, + and register it to receive events for Jobs that are matched by ANY of the + given Matchers. + + If no matchers are provided, the will be used. + + + - + - returns true if the given JobGroup - is paused + Add the given Matcher to the set of matchers for which the listener + will receive events if ANY of the matchers match. - The scheduling context. - - + + + the name of the listener to add the matcher to + the additional matcher to apply for selecting events + true if the identified listener was found and updated - + - returns true if the given TriggerGroup - is paused + Remove the given Matcher to the set of matchers for which the listener + will receive events if ANY of the matchers match. - - - + + + the name of the listener to add the matcher to + the additional matcher to apply for selecting events + true if the given matcher was found and removed from the listener's list of matchers - + - Initializes the class. + Set the set of Matchers for which the listener + will receive events if ANY of the matchers match. + + Removes any existing matchers for the identified listener! + + the name of the listener to add the matcher to + the matchers to apply for selecting events + true if the given matcher was found and removed from the listener's list of matchers - + - Get the global - that has the given name. + Get the set of Matchers for which the listener + will receive events if ANY of the matchers match. - - + + + the name of the listener to add the matcher to + the matchers registered for selecting events for the identified listener - + - Create a with the given configuration - properties. + Remove the identified from the. - + + + true if the identified listener was found in the list, and removed. - + - Bind the scheduler to remoting infrastructure. + Get a List containing all of the s in + the. - + - Un-bind the scheduler from remoting infrastructure. + Get the that has the given name. - + - Adds an object that should be kept as reference to prevent - it from being garbage collected. + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. - The obj. + + If no matcher is provided, the will be used. + + + - + - Removes the object from garbae collection protected list. + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. - The obj. - + + If no matcher is provided, the will be used. + + + - + - Starts the 's threads that fire s. -

- All s that have misfired will - be passed to the appropriate TriggerListener(s). -

+ Add the given Matcher to the set of matchers for which the listener + will receive events if ANY of the matchers match.
+ + + the name of the listener to add the matcher to + the additional matcher to apply for selecting events + true if the identified listener was found and updated
- + - Temporarily halts the 's firing of s. -

- The scheduler is not destroyed, and can be re-started at any time. -

+ Remove the given Matcher to the set of matchers for which the listener + will receive events if ANY of the matchers match.
+ + + the name of the listener to add the matcher to + the additional matcher to apply for selecting events + true if the given matcher was found and removed from the listener's list of matchers
- + - Halts the 's firing of s, - and cleans up all resources associated with the QuartzScheduler. - Equivalent to . -

- The scheduler cannot be re-started. -

+ Set the set of Matchers for which the listener + will receive events if ANY of the matchers match.
+ + Removes any existing matchers for the identified listener! + + the name of the listener to add the matcher to + the matchers to apply for selecting events + true if the given matcher was found and removed from the listener's list of matchers
- + - Halts the 's firing of s, - and cleans up all resources associated with the QuartzScheduler. -

- The scheduler cannot be re-started. -

+ Get the set of Matchers for which the listener + will receive events if ANY of the matchers match.
- - if the scheduler will not allow this method - to return until all currently executing jobs have completed. - + + + the name of the listener to add the matcher to + the matchers registered for selecting events for the identified listener
- + - Validates the state. - - - - - Add the identified by the given - to the Scheduler, and - associate the given with it. -

- If the given Trigger does not reference any , then it - will be set to reference the Job passed with it into this method. -

+ Remove the identified from the.
+ + + true if the identified listener was found in the list, and + removed.
- + - Schedule the given with the - identified by the 's settings. + Get a List containing all of the s + in the. - + - Add the given to the Scheduler - with no associated - . The will be 'dormant' until - it is scheduled with a , or - is called for it. -

- The must by definition be 'durable', if it is not, - SchedulerException will be thrown. -

+ Get the that has the given name.
- + + + Register the given with the + . + + + + + Remove the given from the + . + + + + true if the identified listener was found in the list, and removed. + + + + Get a List containing all of the s + registered with the. + + + + + This is the heart of Quartz, an indirect implementation of the + interface, containing methods to schedule s, + register instances, etc. + + + + + + James House + Marko Lahma (.NET) + + + + Remote scheduler service interface. + + Marko Lahma (.NET) + + + + Starts this instance. + + + + + Standbies this instance. + + + + + Shutdowns this instance. + + + + + returns true if the given JobGroup + is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + Initializes the class. + + + + + Register the given with the + 's list of internal listeners. + + + + + + Remove the given from the + 's list of internal listeners. + + + true if the identified listener was found in the list, andremoved. + + + + Create a with the given configuration + properties. + + + + + + Bind the scheduler to remoting infrastructure. + + + + + Un-bind the scheduler from remoting infrastructure. + + + + + Adds an object that should be kept as reference to prevent + it from being garbage collected. + + The obj. + + + + Removes the object from garbae collection protected list. + + The obj. + + + + + Starts the 's threads that fire s. + + All s that have misfired will + be passed to the appropriate TriggerListener(s). + + + + + + Temporarily halts the 's firing of s. + + The scheduler is not destroyed, and can be re-started at any time. + + + + + + Halts the 's firing of s, + and cleans up all resources associated with the QuartzScheduler. + Equivalent to . + + The scheduler cannot be re-started. + + + + + + Halts the 's firing of s, + and cleans up all resources associated with the QuartzScheduler. + + The scheduler cannot be re-started. + + + + if the scheduler will not allow this method + to return until all currently executing jobs have completed. + + + + + Validates the state. + + + + + Add the identified by the given + to the Scheduler, and + associate the given with it. + + If the given Trigger does not reference any , then it + will be set to reference the Job passed with it into this method. + + + + + + Schedule the given with the + identified by the 's settings. + + + + + Add the given to the Scheduler - with no associated + . The will be 'dormant' until + it is scheduled with a , or + is called for it. + + The must by definition be 'durable', if it is not, + SchedulerException will be thrown. + + + + Delete the identified from the Scheduler - and any - associated s. + associated s. true if the Job was found and deleted. - + - Remove the indicated from the + Remove the indicated from the scheduler. - + - Remove (delete) the with the + Remove (delete) the with the given name, and store the new given one - which must be associated with the same job. - The scheduling context. - The name of the to be removed. - The group name of the to be removed. - The new to be stored. + the key of the trigger + The new to be stored. - if a with the given + if a with the given name and group was not found and removed from the store, otherwise the first fire time of the newly scheduled trigger. @@ -516,347 +792,296 @@ The last random obtained Returns a new positive random number - + Trigger the identified (Execute it now) - with a non-volatile trigger. - + - Trigger the identified (Execute it - now) - with a volatile trigger. + Store and schedule the identified + - + - Pause the with the given name. + Pause the with the given name. - + - Pause all of the s in the given group. + Pause all of the s in the given group. - + - Pause the with the given - name - by pausing all of its current s. + Pause the with the given + name - by pausing all of its current s. - + - Pause all of the s in the - given group - by pausing all of their s. + Pause all of the s in the + given group - by pausing all of their s. - + - Resume (un-pause) the with the given + Resume (un-pause) the with the given name. -

- If the missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ + If the missed one or more fire-times, then the + 's misfire instruction will be applied. +
- + - Resume (un-pause) all of the s in the - given group. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ Resume (un-pause) all of the s in the + matching groups. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. +
- + Gets the paused trigger groups. - The the job scheduling context. - + - Resume (un-pause) the with + Resume (un-pause) the with the given name. -

- If any of the 's s missed one - or more fire-times, then the 's misfire + + If any of the 's s missed one + or more fire-times, then the 's misfire instruction will be applied. -

+
- + - Resume (un-pause) all of the s - in the given group. -

- If any of the s had s that - missed one or more fire-times, then the 's + Resume (un-pause) all of the s + in the matching groups. + + If any of the s had s that + missed one or more fire-times, then the 's misfire instruction will be applied. -

+
- + - Pause all triggers - equivalent of calling - on every group. -

- When is called (to un-pause), trigger misfire + Pause all triggers - equivalent of calling + with a matcher matching all known groups. + + When is called (to un-pause), trigger misfire instructions WILL be applied. -

+
- - + +
- + - Resume (un-pause) all triggers - equivalent of calling + Resume (un-pause) all triggers - equivalent of calling on every group. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ + If any missed one or more fire-times, then the + 's misfire instruction will be applied. +
- +
- + Get the names of all known groups. - + Get the names of all the s in the given group. - + - Get all s that are associated with the - identified . + Get all s that are associated with the + identified . - + - Get the names of all known + Get the names of all known groups. - + - Get the names of all the s in - the given group. + Get the names of all the s in + the matching groups. - + - Get the for the + Get the for the instance with the given name and group. - + - Get the instance with the given name and + Get the instance with the given name and group. - + - Get the current state of the identified . + Determine whether a with the given identifier already + exists within the scheduler. - - - - + + + the identifier to check for + true if a Job exists with the given identifier - + - Add (register) the given to the Scheduler. + Determine whether a with the given identifier already + exists within the scheduler. + + + the identifier to check for + true if a Trigger exists with the given identifier - + - Delete the identified from the Scheduler. - - true if the Calendar was found and deleted. - - - - Get the instance with the given name. + Clears (deletes!) all scheduling data - all s, s + s. - + - Get the names of all registered s. + Get the current state of the identified . + - + - Add the given to the - 'sglobal list. -

- Listeners in the 'global' list receive notification of execution events - for ALL s. -

+ Add (register) the given to the Scheduler.
- + - Add the given to the - 's list, of registered s. + Delete the identified from the Scheduler. + true if the Calendar was found and deleted. - + - Remove the given from the - 's list of global listeners. - - - true if the identifed listener was found in the list, and removed. - - - - - Remove the identifed from the 's - list of global listeners. + Get the instance with the given name. - - true if the identifed listener was found in the list, and removed. - + - Remove the identifed from - the 's list of registered listeners. + Get the names of all registered s. - - true if the identifed listener was found in the list, and removed. - - + - Get the non-global that has the given name. + Add the given to the + 's internal list. + - + - Add the given to the - 'sglobal list. -

- Listeners in the 'global' list receive notification of execution events - for ALL s. -

-
-
- - - Add the given to the - 's list, of registered s. - - - - - Remove the given from - the 's list of global listeners. + Remove the identified from the 's + list of internal listeners. - - true if the identifed listener was found in the list, and removed. - + + true if the identified listener was found in the list, and removed. - + - Remove the identifed from the 's - list of global listeners. + Get the internal + that has the given name. - true if the identifed listener was found in the list, and removed + - + - Remove the identifed - from the 's list of registered listeners. + Add the given to the + 's internal list. - - true if the identifed listener was found in the list, and removed. - + - + - Get the non-global - that has the given name. + Remove the identified from the 's + list of internal listeners. + + true if the identified listener was found in the list, and removed. - + - Get the global that + Get the internal that has the given name. - - - Register the given with the - . - - - - - Remove the given from the - . - - - true if the identifed listener was found in the list, and removed. - - - + Notifies the job store job complete. - The job scheduling context. The trigger. The detail. The instruction code. - + Notifies the scheduler thread. - + Notifies the trigger listeners about fired trigger. The job execution context. - + Notifies the trigger listeners about misfired trigger. The trigger. - + Notifies the trigger listeners of completion. The job executution context. The instruction code to report to triggers. - + Notifies the job listeners about job to be executed. The jec. - + Notifies the job listeners that job exucution was vetoed. The job execution context. - + Notifies the job listeners that job was executed. @@ -870,51 +1095,65 @@ The MSG. The se. - + Notifies the scheduler listeners about job that was scheduled. The trigger. - + Notifies the scheduler listeners about job that was unscheduled. - Name of the trigger. - The trigger group. - + Notifies the scheduler listeners about finalized trigger. The trigger. - + Notifies the scheduler listeners about paused trigger. - The name. The group. - + + + Notifies the scheduler listeners about paused trigger. + + + Notifies the scheduler listeners resumed trigger. - The name. The group. - + + + Notifies the scheduler listeners resumed trigger. + + + + + Notifies the scheduler listeners about paused job. + + + Notifies the scheduler listeners about paused job. - The name. The group. - + + + Notifies the scheduler listeners about resumed job. + + + Notifies the scheduler listeners about resumed job. - The name. The group. @@ -922,11 +1161,24 @@ Notifies the scheduler listeners about scheduler shutdown. - + Interrupt all instances of the identified InterruptableJob. + + + Interrupt all instances of the identified InterruptableJob executing in this Scheduler instance. + + + This method is not cluster aware. That is, it will only interrupt + instances of the identified InterruptableJob currently executing in this + Scheduler instance, not across the entire cluster. + + + + + Obtains a lifetime service object to control the lifetime policy for this instance. @@ -1015,72 +1267,61 @@ - Return a list of objects that + Return a list of objects that represent all currently executing Jobs in this Scheduler instance. -

+ This method is not cluster aware. That is, it will only return Jobs currently executing in this Scheduler instance, not across the entire cluster. -

-

+ + Note that the list returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the true list of executing jobs may be different. -

+
- + - Get a List containing all of the - s in the 'sglobal list. + Get a List containing all of the internal s + registered with the . - + - Get a Set containing the names of all the non-global - s registered with the . + Gets or sets the job factory. + The job factory. - + - Get a list containing all of the - s in the 'sglobal list. + Gets the running since. + The running since. - + - Get a Set containing the names of all the non-global - s registered with the . + Gets the number of jobs executed. + The number of jobs executed. - + - Get a List containing all of the - s registered with the . - - - - - Gets or sets the job factory. - - The job factory. - - - - Gets the running since. + Gets a value indicating whether this scheduler supports persistence. - The running since. + true if supports persistence; otherwise, false. - + - Gets the number of jobs executed. + Get a List containing all of the s + in the 's internal list. - The number of jobs executed. + - + - Gets a value indicating whether this scheduler supports persistence. + Get a list containing all of the s + in the 's internal list. - true if supports persistence; otherwise, false. @@ -1092,156 +1333,47 @@ ErrorLogger - Scheduler Listener Class - - - A helpful abstract base class for implementors of - . - - - The methods in this class are empty so you only need to override the - subset for the events you care about. - - - - - - The interface to be implemented by classes that want to be informed of major - events. - - - - - James House - - - - Called by the when a - is scheduled. - - - - - Called by the when a - is unscheduled. - - - - - Called by the when a - has reached the condition in which it will never fire again. - - - - - Called by the when a - or group of s has been paused. -

- If a group was paused, then the parameter - will be null. -

-
- Name of the trigger. - The trigger group. -
- - - Called by the when a - or group of s has been un-paused. -

- If a group was resumed, then the parameter - will be null. -

-
- Name of the trigger. - The trigger group. -
- - - Called by the when a - or group of s has been paused. -

- If a group was paused, then the parameter will be - null. If all jobs were paused, then both parameters will be null. -

-
- Name of the job. - The job group. -
- - - Called by the when a - or group of s has been un-paused. -

- If a group was resumed, then the parameter will - be null. If all jobs were paused, then both parameters will be null. -

-
- The job group. -
- - - Called by the when a serious error has - occured within the scheduler - such as repeated failures in the , - or the inability to instantiate a instance when its - has fired. -

- The property of the given SchedulerException - can be used to determine more specific information about the type of - error that was encountered. -

-
-
- - - Called by the to inform the listener - that it has Shutdown. - - - - - Get the for this - type's category. This should be used by subclasses for logging. - - The interface to be implemented by classes that want to be informed when a - executes. In general, applications that use a + executes. In general, applications that use a will not have use for this mechanism. - + + - + James House + Marko Lahma (.NET) - + - Called by the when a - is about to be executed (an associated - has occured). -

+ Called by the when a + is about to be executed (an associated + has occurred). + This method will not be invoked if the execution of the Job was vetoed by a . -

+
- +
- + - Called by the when a - was about to be executed (an associated - has occured), but a vetoed it's + Called by the when a + was about to be executed (an associated + has occurred), but a vetoed it's execution. - + - + - Called by the after a - has been executed, and be for the associated 's - method has been called. + Called by the after a + has been executed, and be for the associated 's + method has been called. @@ -1334,8 +1466,7 @@ - Get the of all - s for the + Get the of all s for the to use. @@ -1354,14 +1485,24 @@
The scheduler exporter.
+ + + The ThreadExecutor which runs the QuartzSchedulerThread. + + + + + Gets or sets the batch time window. + + - The thread responsible for performing the work of firing + The thread responsible for performing the work of firing s that are registered with the . - + James House Marko Lahma (.NET) @@ -1369,6 +1510,7 @@ Support class used to handle threads + Marko Lahma (.NET)
@@ -1386,19 +1528,6 @@ The name of the thread - - - Initializes a new instance of the Thread class. - - A ThreadStart delegate that references the methods to be invoked when this thread begins executing - - - - Initializes a new instance of the Thread class. - - A ThreadStart delegate that references the methods to be invoked when this thread begins executing - The name of the thread - This method has no functionality unless the method is overridden @@ -1419,62 +1548,12 @@ Blocks the calling thread until a thread terminates - - - Blocks the calling thread until a thread terminates or the specified time elapses - - Time of wait in milliseconds - - - - Blocks the calling thread until a thread terminates or the specified time elapses - - Time of wait in milliseconds - Time of wait in nanoseconds - - - - Resumes a thread that has been suspended - - - - - Raises a ThreadAbortException in the thread on which it is invoked, - to begin the process of terminating the thread. Calling this method - usually terminates the thread - - - - - Raises a ThreadAbortException in the thread on which it is invoked, - to begin the process of terminating the thread while also providing - exception information about the thread termination. - Calling this method usually terminates the thread. - - An object that contains application-specific information, such as state, which can be used by the thread being aborted - - - - Suspends the thread, if the thread is already suspended it has no effect - - Obtain a string that represents the current object A string that represents the current object - - - Gets the currently running thread - - The currently running thread - - - - Gets the current thread instance - - Gets or sets the name of the thread @@ -1485,11 +1564,6 @@ Gets or sets a value indicating the scheduling priority of a thread - - - Gets a value indicating the execution status of the current thread - - Gets or sets a value indicating whether or not a thread is a background thread. @@ -1501,14 +1575,14 @@ The randomized idle wait time. - + Construct a new for the given as a non-daemon with normal priority. - + Construct a new for the given as a with the given @@ -1525,7 +1599,7 @@ Signals the main processing loop to pause at the next possible point. - + Signals the main processing loop that a change in scheduling has been made - in order to interrupt any sleeping that may be occuring while @@ -1548,7 +1622,7 @@ The bndle. - + Releases the trigger retry loop. @@ -1592,64 +1666,49 @@ communicate signals back to the . James House + Marko Lahma (.NET) - + Notifies the scheduler about misfired trigger. The trigger that misfired. - + Notifies the scheduler about finalized trigger. The trigger that has finalized. - + Signals the scheduling change. - + Notifies the scheduler about misfired trigger. The trigger that misfired. - + Notifies the scheduler about finalized trigger. The trigger that has finalized. - + Signals the scheduling change. - - - An object used to pass information about the 'client' to the . - - - James House - Marko Lahma (.NET) - - - - get the instanceId in the cluster. - -

- Set the instanceId. -

-
-
Metadata information about specific ADO.NET driver library. Metadata is used to create correct types of object instances to interact with the underlying database. + Marko Lahma @@ -1765,22 +1824,24 @@ - + Concrete implementation of . + Marko Lahma - + - + Data access provider interface. + Marko Lahma - + Returns a new command object for executing SQL statments/Stored Procedures against the database. An new - + Returns a new instance of the providers CommandBuilder class. @@ -1789,25 +1850,25 @@ be portable (but more loosely typed) across .NET 1.1/2.0 A new Command Builder - + Returns a new connection object to communicate with the database. A new - + Returns a new parameter object for binding values to parameter placeholders in SQL statements or Stored Procedure variables. A new - + Shutdowns this instance. - + Connection string used to create connections. @@ -1872,11 +1933,6 @@ The metadata. - - - Summary description for DbProviderFactory. - - This interface can be implemented by any @@ -1884,43 +1940,176 @@ Jeffrey Wescott James House + Marko Lahma(.NET) + + + + Simple Trigger type. + + + + + Cron Trigger type. + + + + + Calendar Interval Trigger type. + + + + + Daily Time Interval Trigger type. + - - @deprecated Whether a trigger has misfired is no longer a state, but - rather now identified dynamically by whether the trigger's next fire - time is more than the misfire threshold time in the past. + + + A general blob Trigger type. + This class contains utility functions for use in all delegate classes. Jeffrey Wescott + Marko Lahma (.NET) - + Replace the table prefix in a query by replacing any occurrences of "{0}" with the table prefix. The unsubstitued query The table prefix + the scheduler name The query, with proper table prefix substituted - + - Obtain a unique key for a given job. + Common helper methods for working with ADO.NET. - The job name - The group containing the job - - A unique key + Marko Lahma + + + + Persist a CalendarIntervalTriggerImpl by converting internal fields to and from + SimplePropertiesTriggerProperties. + + + + + + + A base implementation of that persists + trigger fields in the "QRTZ_SIMPROP_TRIGGERS" table. This allows extending + concrete classes to simply implement a couple methods that do the work of + getting/setting the trigger's fields, and creating the + for the particular type of trigger. + + + jhouse + Marko Lahma (.NET) + + + + An interface which provides an implementation for storing a particular + type of 's extended properties. + + jhouse + + + + Initializes the persistence delegate. + + + + + Returns whether the trigger type can be handled by delegate. + + + + + Returns database discriminator value for trigger type. + + + + + Inserts trigger's special properties. + + + + + Updates trigger's special properties. + + + + + Deletes trigger's special properties. + + + + + Loads trigger's special properties. + + + + + Returns whether the trigger type can be handled by delegate. + + + + + Returns database discriminator value for trigger type. + + + + + Utility class to keep track of both active transaction + and connection. + + Marko Lahma + + + + Initializes a new instance of the class. + + The connection. + The transaction. + + + + Gets or sets the connection. + + The connection. + + + + Gets or sets the transaction. + + The transaction. + + + + Persist a CronTriggerImpl. + + + + + + + Persist a DailyTimeIntervalTrigger by converting internal fields to and from + SimplePropertiesTriggerProperties. + + + + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) - + - Obtain a unique key for a given trigger. + - The trigger name - The group containing the trigger - A unique key + @@ -1928,6 +2117,7 @@ in order to protect resources from being altered by multiple threads at the same time. + Marko Lahma (.NET) @@ -1936,6 +2126,7 @@ class. Jeffrey Wescott + Marko Lahma (.NET) @@ -1943,6 +2134,7 @@ resources from being altered by multiple threads at the same time. James House + Marko Lahma (.NET) @@ -1977,23 +2169,31 @@ Interface for Quartz objects that need to know what the table prefix of the tables used by a ADO.NET JobStore is. + Marko Lahma (.NET) + + + + Table prefix to use. + - + Initializes a new instance of the class. The table prefix. - The SQL. + the scheduler name + The SQL. The default SQL. The db provider. - + Execute the SQL that will lock the proper database row. + @@ -2045,42 +2245,219 @@ The table prefix. - + - A FirebirdDelegate specific driver delegate. + Initialization argumens holder for implementations. - Marko Lahma - + - This is meant to be an abstract base class for most, if not all, - implementations. Subclasses should override only those methods that need - special handling for the DBMS driver in question. + Whether simple should be used (for serialization safety). + + + + + The logger to use during execution. + + + + + The prefix of all table names. + + + + + The instance's name. + + + + + The instance id. + + + + + The db provider. + + + + + The type loading strategy. + + + + + Object serializer and deserializer strategy to use. + + + + + Custom driver delegate initialization. + + + initStrings are of the format: + settingName=settingValue|otherSettingName=otherSettingValue|... + + + + + Conveys the state of a fired-trigger record. - Jeffrey Wescott James House Marko Lahma (.NET) + + + Gets or sets the fire instance id. + + The fire instance id. + + + + Gets or sets the fire timestamp. + + The fire timestamp. + + + + Gets or sets a value indicating whether job disallows concurrent execution. + + + + + Gets or sets the job key. + + The job key. + + + + Gets or sets the scheduler instance id. + + The scheduler instance id. + + + + Gets or sets the trigger key. + + The trigger key. + + + + Gets or sets the state of the fire instance. + + The state of the fire instance. + + + + Gets or sets a value indicating whether [job requests recovery]. + + true if [job requests recovery]; otherwise, false. + + + + Gets or sets the priority. + + The priority. + + + + Service interface or modifying parameters + and resultset values. + + + + + Prepares a to be used to access database. + + Connection and tranasction pair + SQL to run + + + + + Adds a parameter to . + + Command to add parameter to + Parameter's name + Parameter's value + + + + Adds a parameter to . + + Command to add parameter to + Parameter's name + Parameter's value + Parameter's data type + + + + Gets the db presentation for boolean value. Subclasses can overwrite this behaviour. + + Value to map to database. + + + + + Gets the boolean value from db presentation. Subclasses can overwrite this behaviour. + + Value to map from database. + + + + + Gets the db presentation for date/time value. Subclasses can overwrite this behaviour. + + Value to map to database. + + + + + Gets the date/time value from db presentation. Subclasses can overwrite this behaviour. + + Value to map from database. + + + + + Gets the db presentation for time span value. Subclasses can overwrite this behaviour. + + Value to map to database. + + + + + Gets the time span value from db presentation. Subclasses can overwrite this behaviour. + + Value to map from database. + + This is the base interface for all driver delegate classes. -

+ This interface is very similar to the interface except each method has an additional parameter. -

-

+ + Unless a database driver has some extremely-DB-specific requirements, any IDriverDelegate implementation classes should extend the class. -

+
Jeffrey Wescott James House Marko Lahma (.NET)
+ + + Initializes the driver delegate with configuration data. + + + Update all triggers having one of the two given states, to the given new @@ -2092,16 +2469,16 @@ The second old state to update Number of rows updated - + Get the names of all of the triggers that have misfired - according to the given timestamp. The DB Connection The timestamp. - An array of objects + An array of objects - + Get the names of all of the triggers in the given state that have misfired - according to the given timestamp. @@ -2109,9 +2486,9 @@ The DB Connection The state. The time stamp. - An array of objects + An array of objects - + Get the names of all of the triggers in the given group and state that have misfired - according to the given timestamp. @@ -2120,7 +2497,7 @@ Name of the group. The state. The timestamp. - An array of objects + An array of objects @@ -2131,12 +2508,12 @@ In order to preserve the ordering of the triggers, the fire time will be set from the ColumnFiredTime column in the TableFiredTriggers - table. The caller is responsible for calling + table. The caller is responsible for calling on each returned trigger. It is also up to the caller to insert the returned triggers to ensure that they are fired. The DB Connection - An array of objects + An array of objects @@ -2153,28 +2530,7 @@ The instance id. The number of rows deleted - - - Delete all volatile fired triggers. - - The DB Connection - The number of rows deleted - - - - Get the names of all of the triggers that are volatile. - - The DB Connection - An array of see cref="Key" /> objects. - - - - Get the names of all of the jobs that are volatile. - - The DB Connection - An array of objects. - - + Insert the job detail record. @@ -2182,7 +2538,7 @@ The job to insert. Number of rows inserted. - + Update the job detail record. @@ -2190,53 +2546,40 @@ The job to update. Number of rows updated. - -

+ +

Get the names of all of the triggers associated with the given job. -

+
The DB Connection - The job name - The job group - - - - Delete all job listeners for the given job. - - The DB Connection - The name of the job - The group containing the job - The number of rows deleted + The key identifying the job. - + Delete the job detail record for the given job. The DB Connection - the name of the job - Name of the group. + The key identifying the job. the number of rows deleted - + Check whether or not the given job is stateful. The DB Connection - The name of the job - The group containing the job + The key identifying the job. true if the job exists and is stateful, false otherwise - + Check whether or not the given job exists. The DB Connection - Name of the job. - Name of the group. + The key identifying the job. true if the job exists, false otherwise - + Update the job data map for the given job. @@ -2244,33 +2587,12 @@ The job. the number of rows updated - - - Associate a listener with a job. - - The DB Connection - The job to associate with the listener. - The listener to insert. - The number of rows inserted. - - -

- Get all of the listeners for a given job. -

- -
- The DB Connection - The job name whose listeners are wanted - The group containing the job - array of listener names -
- + Select the JobDetail object for a given job name / group name. The DB Connection - The job name whose listeners are wanted - The group containing the job + The key identifying the job. The class load helper. The populated JobDetail object @@ -2288,15 +2610,15 @@ The DB Connection. an array of group names - + Select all of the jobs contained in a given group. The DB Connection - The group containing the jobs + an array of job names - + Insert the base trigger data. @@ -2306,15 +2628,7 @@ The job detail. The number of rows inserted - - - Insert the simple trigger data. - - The DB Connection - The trigger to insert - The number of rows inserted - - + Insert the blob trigger data. @@ -2322,15 +2636,7 @@ The trigger to insert The number of rows inserted - - - Insert the cron trigger data. - - the DB Connection - The trigger. - the number of rows inserted - - + Update the base trigger data. @@ -2340,23 +2646,7 @@ The job detail. the number of rows updated - - - Update the simple trigger data. - - the DB Connection - The trigger. - the number of rows updated - - - - Update the cron trigger data. - - the DB Connection - The trigger. - the number of rows updated - - + Update the blob trigger data. @@ -2364,45 +2654,41 @@ The trigger. the number of rows updated - + Check whether or not a trigger exists. the DB Connection - Name of the trigger. - Name of the group. + The key identifying the trigger. the number of rows updated - + Update the state for a given trigger. The DB Connection - The name of the trigger. - The group containing the trigger. + The key identifying the trigger. The new state for the trigger. the number of rows updated - + Update the given trigger to the given new state, if it is in the given old state. The DB connection - The name of the trigger. - The group containing the trigger + The key identifying the trigger. The new state for the trigger The old state the trigger must be in int the number of rows updated - + Update the given trigger to the given new state, if it is one of the given old states. The DB connection - The name of the trigger - The group containing the trigger + The key identifying the trigger. The new state for the trigger One of the old state the trigger must be in One of the old state the trigger must be in @@ -2412,165 +2698,92 @@ SQLException - - - Update the all triggers to the given new state, if they are in one of - the given old states AND its next fire time is before the given time. - - The DB connection - The new state for the trigger - One of the old state the trigger must be in - One of the old state the trigger must be in - The time before which the trigger's next fire time must be - int the number of rows updated - - + Update all triggers in the given group to the given new state, if they are in one of the given old states. The DB connection - The group containing the trigger + The new state for the trigger One of the old state the trigger must be in One of the old state the trigger must be in One of the old state the trigger must be in The number of rows updated - + Update all of the triggers of the given group to the given new state, if they are in the given old state. The DB connection - The group containing the triggers + The new state for the trigger group The old state the triggers must be in. int the number of rows updated - + Update the states of all triggers associated with the given job. The DB Connection - The name of the job. - The group containing the job. + The key identifying the job. The new state for the triggers. The number of rows updated - + Update the states of any triggers associated with the given job, that are the given current state. The DB Connection - The name of the job - The group containing the job + The key identifying the job. The new state for the triggers The old state of the triggers the number of rows updated - - - Delete all of the listeners associated with a given trigger. - - The DB Connection - The name of the trigger whose listeners will be deleted - The name of the group containing the trigger - the number of rows deleted - - - - Associate a listener with the given trigger. - - The DB Connectio - The trigger - The name of the listener to associate with the trigger - the number of rows inserted - - - - Select the listeners associated with a given trigger. - - The DB Connection - The name of the trigger - The group containing the trigger - array of trigger listener names - - - - Delete the simple trigger data for a trigger. - - The DB Connection - The name of the trigger - The group containing the trigger - The number of rows deleted - - + Delete the BLOB trigger data for a trigger. The DB Connection - The name of the trigger - The group containing the trigger + The key identifying the trigger. The number of rows deleted - - - Delete the cron trigger data for a trigger. - - The DB Connection - The name of the trigger - The group containing the trigger - the number of rows deleted - - + Delete the base trigger data for a trigger. The DB Connection - The name of the trigger - The group containing the trigger + The key identifying the trigger. the number of rows deleted - + Select the number of triggers associated with a given job. The DB Connection - The name of the job - The group containing the job + The key identifying the job. the number of triggers for the given job - + Select the job to which the trigger is associated. The DB Connection - The name of the trigger - The group containing the trigger + The key identifying the trigger. The load helper. - The object associated with the given trigger + The object associated with the given trigger - - - Select the stateful jobs which are referenced by triggers in the given - trigger group. - - The DB Connection - The trigger group. - a List of Keys to jobs. - - + Select the triggers for a job> The DB Connection - The name of the trigger - The group containing the trigger - an array of objects associated with a given job. + The key identifying the job. + an array of objects associated with a given job. @@ -2579,45 +2792,41 @@ The DB Connection. Name of the calendar. - An array of objects associated with a given job. + An array of objects associated with a given job. - + Select a trigger. The DB Connection. - The name of the trigger. - The group containing the trigger. - The object. + The key identifying the trigger. + The object. - + Select a trigger's JobDataMap. The DB Connection. - The name of the trigger. - The group containing the trigger. + The key identifying the trigger. The of the Trigger, never null, but possibly empty. - + Select a trigger's state value. The DB Connection. - The name of the trigger. - The group containing the trigger. - The object. + The key identifying the trigger. + The object. - + Select a triggers status (state and next fire time). The DB Connection. - The name of the trigger. - The group containing the trigger. - A object, or null + The key identifying the trigger. + A object, or null @@ -2633,12 +2842,12 @@ The DB Connection. An array of group names. - + Select all of the triggers contained in a given group. The DB Connection. - The group containing the triggers. + An array of trigger names. @@ -2647,7 +2856,7 @@ The DB Connection. The state the triggers must be in. - An array of trigger s. + An array of trigger s. @@ -2763,19 +2972,19 @@ The DB Connection An array of calendar names. - + Select the trigger that will be fired at the given fire time. The DB Connection The time that the trigger will be fired. - A representing the + A representing the trigger that will be fired at the given fire time, or null if no trigger will be fired at that time - + Insert a fired trigger. @@ -2822,18 +3031,17 @@ The fired trigger entry to delete. The number of rows deleted. - + Get the number instances of the identified job currently executing. The DB Connection - Name of the job. - The job group. + The key identifying the job. The number instances of the identified job currently executing. - + Insert a scheduler-instance state record. @@ -2851,7 +3059,7 @@ The instance id. The number of deleted rows. - + Update a scheduler-instance state record. @@ -2863,23 +3071,24 @@ A List of all current s. -

+ If instanceId is not null, then only the record for the identified instance will be returned. -

+
The DB Connection The instance id.
- + Select the next trigger which will fire to fire between the two given timestamps in ascending order of fire time, and then descending by priority. The conn. - highest value of of the triggers (exclusive) - highest value of of the triggers (inclusive) + highest value of of the triggers (exclusive) + highest value of of the triggers (inclusive) + maximum number of trigger keys allow to acquired in the returning list. A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired. @@ -2893,2753 +3102,2468 @@ The conn. - + Counts the misfired triggers in states. The conn. The state1. - The state2. The ts. - + Selects the misfired triggers in states. The conn. The state1. - The state2. The ts. The count. The result list. - + - Create new StdAdoDelegate instance. + Clear (delete!) all scheduling data - all s, s + s. - the logger to use during execution - the prefix of all table names - The instance id. - The db provider. + - + - Create new StdAdoDelegate instance. + Exception class for when a driver delegate cannot be found for a given + configuration, or lack thereof. - the logger to use during execution - the prefix of all table names - The instance id. - The db provider. - if set to true [use properties]. + Jeffrey Wescott + Marko Lahma (.NET) - - - Insert the job detail record. + + + Base class for exceptions thrown by the Quartz . - the DB Connection - the new state for the triggers - the first old state to update - the second old state to update - number of rows updated + + SchedulerExceptions may contain a reference to another + , which was the underlying cause of the SchedulerException. + + James House + Marko Lahma (.NET) - + - Get the names of all of the triggers that have misfired. + Initializes a new instance of the class. - the DB Connection - The ts. - an array of objects - - - Select all of the triggers in a given state. + + + Initializes a new instance of the class. - The DB Connection - The state the triggers must be in - an array of trigger s + The MSG. - + - Get the names of all of the triggers in the given state that have - misfired - according to the given timestamp. + Initializes a new instance of the class. - The DB Connection - The state. - The time stamp. - An array of objects + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The class name is null or is zero (0). + The info parameter is null. - + - Get the names of all of the triggers in the given states that have - misfired - according to the given timestamp. No more than count will - be returned. + Initializes a new instance of the class. - The conn. - The state1. - The state2. - The ts. - The most misfired triggers to return, negative for all - - Output parameter. A List of objects. Must not be null - - Whether there are more misfired triggers left to find beyond the given count. + The cause. - + - Get the number of triggers in the given states that have - misfired - according to the given timestamp. + Initializes a new instance of the class. - - - - - + The MSG. + The cause. - + - Get the names of all of the triggers in the given group and state that - have misfired. + Creates and returns a string representation of the current exception. - The DB Connection - Name of the group. - The state. - The timestamp. - an array of objects + + A string representation of the current exception. + + - + - Select all of the triggers for jobs that are requesting recovery. The - returned trigger objects will have unique "recoverXXX" trigger names and - will be in the - trigger group. + Initializes a new instance of the class. - - In order to preserve the ordering of the triggers, the fire time will be - set from the ColumnFiredTime column in the TableFiredTriggers - table. The caller is responsible for calling - on each returned trigger. It is also up to the caller to insert the - returned triggers to ensure that they are fired. - - The DB Connection - an array of objects + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The class name is null or is zero (0). + The info parameter is null. - + - Delete all fired triggers. - - The DB Connection. - The number of rows deleted. + is meant to be used in an application-server + or other software framework environment that provides + container-managed-transactions. No commit / rollback will be handled by this class. + + + If you need commit / rollback, use + instead. + + Jeffrey Wescott + James House + Srinivas Venkatarangaiah + Marko Lahma (.NET) - + - Delete all fired triggers of the given instance. + Contains base functionality for ADO.NET-based JobStore implementations. - The DB Connection - The instance id. - The number of rows deleted + Jeffrey Wescott + James House + Marko Lahma (.NET) - - - Insert the job detail record. + + + The interface to be implemented by classes that want to provide a + and storage mechanism for the + 's use. - The DB Connection. - The job to insert. - Number of rows inserted. + + Storage of s and s should be keyed + on the combination of their name and group for uniqueness. + + + + + + + + James House + Marko Lahma (.NET) - + - Gets the db presentation for boolean value. Subclasses can overwrite this behaviour. + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. - Value to map to database. - - + - Update the job detail record. + Called by the QuartzScheduler to inform the that + the scheduler has started. - The DB Connection. - The job to update. - Number of rows updated. - + - Get the names of all of the triggers associated with the given job. + Called by the QuartzScheduler to inform the JobStore that + the scheduler has been paused. - The DB Connection. - The name of the job. - The group containing the job. - An array of objects - + - Delete all job listeners for the given job. + Called by the QuartzScheduler to inform the JobStore that + the scheduler has resumed after being paused. - The DB Connection. - The name of the job. - The group containing the job. - The number of rows deleted. - + - Delete the job detail record for the given job. + Called by the QuartzScheduler to inform the that + it should free up all of it's resources because the scheduler is + shutting down. - the DB Connection - the name of the job - the group containing the job - the number of rows deleted - + - Check whether or not the given job is stateful. + Store the given and . - the DB Connection - the name of the job - the group containing the job - - true if the job exists and is stateful, false otherwise - + The to be stored. + The to be stored. + ObjectAlreadyExistsException - + - Check whether or not the given job exists. + returns true if the given JobGroup is paused - the DB Connection - the name of the job - the group containing the job - true if the job exists, false otherwise + + - + - Update the job data map for the given job. + returns true if the given TriggerGroup + is paused - The conn. - the job to update - the number of rows updated + + - + - Associate a listener with a job. + Store the given . - The DB Connection. - The job to associate with the listener. - The listener to insert. - The number of rows inserted. + The to be stored. + + If , any existing in the + with the same name and group should be + over-written. + - + - Get all of the listeners for a given job. + Remove (delete) the with the given + key, and any s that reference + it. - The DB Connection. - The job name whose listeners are wanted. - The group containing the job. - Array of listener names. + + If removal of the results in an empty group, the + group should be removed from the 's list of + known group names. + + + if a with the given name and + group was found and removed from the store. + - + - Select the JobDetail object for a given job name / group name. + Retrieve the for the given + . - The DB Connection. - The job name whose listeners are wanted. - The group containing the job. - The load helper. - The populated JobDetail object. - - - build Map from java.util.Properties encoding. + + The desired , or null if there is no match. + - + - Select the total number of jobs stored. + Store the given . - The DB Connection. - The total number of jobs stored. + The to be stored. + If , any existing in + the with the same name and group should + be over-written. + ObjectAlreadyExistsException - + - Select all of the job group names that are stored. + Remove (delete) the with the given key. - The DB Connection. - An array of group names. + + + If removal of the results in an empty group, the + group should be removed from the 's list of + known group names. + + + If removal of the results in an 'orphaned' + that is not 'durable', then the should be deleted + also. + + + + if a with the given + name and group was found and removed from the store. + - + - Select all of the jobs contained in a given group. + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. - The DB Connection. - The group containing the jobs. - An array of job names. + The to be replaced. + The new to be stored. + + if a with the given + name and group was found and removed from the store. + - + - Insert the base trigger data. + Retrieve the given . - the DB Connection - the trigger to insert - the state that the trigger should be stored in - The job detail. - the number of rows inserted + + The desired , or null if there is no + match. + - + - Insert the simple trigger data. + Determine whether a with the given identifier already + exists within the scheduler. - The DB Connection. - The trigger to insert. - The number of rows inserted. + + + the identifier to check for + true if a job exists with the given identifier - + - Insert the cron trigger data. + Determine whether a with the given identifier already + exists within the scheduler. - the DB Connection - the trigger to insert - the number of rows inserted + + + the identifier to check for + true if a trigger exists with the given identifier - + - Insert the blob trigger data. + Clear (delete!) all scheduling data - all s, s + s. - The DB Connection. - The trigger to insert. - The number of rows inserted. + + - + - Update the base trigger data. + Store the given . - The DB Connection. - The trigger to insert. - The state that the trigger should be stored in. - The job detail. - The number of rows updated. + The name. + The to be stored. + If , any existing + in the with the same name and group + should be over-written. + If , any s existing + in the that reference an existing + Calendar with the same name with have their next fire time + re-computed with the new . + ObjectAlreadyExistsException - + - Update the simple trigger data. + Remove (delete) the with the + given name. - The DB Connection. - The trigger to insert. - The number of rows updated. + + If removal of the would result in + s pointing to non-existent calendars, then a + will be thrown. + + The name of the to be removed. + + if a with the given name + was found and removed from the store. + - + - Update the cron trigger data. + Retrieve the given . - The DB Connection. - The trigger to insert. - The number of rows updated. + The name of the to be retrieved. + + The desired , or null if there is no + match. + - + - Update the blob trigger data. + Get the number of s that are + stored in the . - The DB Connection. - The trigger to insert. - The number of rows updated. + - + - Check whether or not a trigger exists. + Get the number of s that are + stored in the . - The DB Connection. - The name of the trigger. - The group containing the trigger. - true if the trigger exists, false otherwise + - + - Update the state for a given trigger. + Get the number of s that are + stored in the . - The DB Connection. - The name of the trigger. - The group containing the trigger. - The new state for the trigger. - The number of rows updated. + - + - Update the given trigger to the given new state, if it is one of the - given old states. + Get the names of all of the s that + have the given group name. + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + - The DB connection. - The name of the trigger. - The group containing the trigger. - The new state for the trigger. - One of the old state the trigger must be in. - One of the old state the trigger must be in. - One of the old state the trigger must be in. - The number of rows updated. + + - + - Update the all triggers to the given new state, if they are in one of - the given old states AND its next fire time is before the given time. + Get the names of all of the s + that have the given group name. + + If there are no triggers in the given group name, the result should be a + zero-length array (not ). + - The DB connection - The new state for the trigger - One of the old state the trigger must be in - One of the old state the trigger must be in - The time before which the trigger's next fire time must be - int the number of rows updated - + - Update all triggers in the given group to the given new state, if they - are in one of the given old states. + Get the names of all of the + groups. + + If there are no known group names, the result should be a zero-length + array (not ). + - The DB connection. - The group containing the trigger. - The new state for the trigger. - One of the old state the trigger must be in. - One of the old state the trigger must be in. - One of the old state the trigger must be in. - The number of rows updated. - + - Update the given trigger to the given new state, if it is in the given - old state. + Get the names of all of the + groups. + + If there are no known group names, the result should be a zero-length + array (not ). + - the DB connection - the name of the trigger - the group containing the trigger - the new state for the trigger - the old state the trigger must be in - int the number of rows updated - + - Update all of the triggers of the given group to the given new state, if - they are in the given old state. + Get the names of all of the s + in the . + + + If there are no Calendars in the given group name, the result should be + a zero-length array (not ). + - the DB connection - the group containing the triggers - the new state for the trigger group - the old state the triggers must be in - int the number of rows updated - + - Update the states of all triggers associated with the given job. + Get all of the Triggers that are associated to the given Job. - the DB Connection - the name of the job - the group containing the job - the new state for the triggers - the number of rows updated + + If there are no matches, a zero-length array should be returned. + - + - Updates the state of the trigger states for job from other. + Get the current state of the identified . - The conn. - Name of the job. - Name of the group. - The state. - The old state. - + - + - Delete all of the listeners associated with a given trigger. + Pause the with the given key. - the DB Connection - the name of the trigger whose listeners will be deleted - the name of the group containing the trigger - the number of rows deleted - + - Associate a listener with the given trigger. + Pause all of the s in the + given group. - the DB Connection - the trigger - the name of the listener to associate with the trigger - the number of rows inserted + + The JobStore should "remember" that the group is paused, and impose the + pause on any new triggers that are added to the group while the group is + paused. + - + - Select the listeners associated with a given trigger. + Pause the with the given key - by + pausing all of its current s. - the DB Connection - the name of the trigger - the group containing the trigger - - array of trigger listener names - - + - Delete the simple trigger data for a trigger. + Pause all of the s in the given + group - by pausing all of their s. + + The JobStore should "remember" that the group is paused, and impose the + pause on any new jobs that are added to the group while the group is + paused. + - the DB Connection - the name of the trigger - the group containing the trigger - the number of rows deleted + + - + - Delete the cron trigger data for a trigger. + Resume (un-pause) the with the + given key. + + + If the missed one or more fire-times, then the + 's misfire instruction will be applied. + - the DB Connection - the name of the trigger - the group containing the trigger - the number of rows deleted + + - + - Delete the cron trigger data for a trigger. + Resume (un-pause) all of the s + in the given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + - the DB Connection - the name of the trigger - the group containing the trigger - the number of rows deleted - + - Delete the base trigger data for a trigger. + Gets the paused trigger groups. + + + + + + Resume (un-pause) the with the + given key. + + If any of the 's s missed one + or more fire-times, then the 's misfire + instruction will be applied. + - the DB Connection - the name of the trigger - the group containing the trigger - the number of rows deleted - + - Select the number of triggers associated with a given job. + Resume (un-pause) all of the s in + the given group. + + If any of the s had s that + missed one or more fire-times, then the 's + misfire instruction will be applied. + - the DB Connection - the name of the job - the group containing the job - the number of triggers for the given job - + - Select the job to which the trigger is associated. + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + - the DB Connection - the name of the trigger - the group containing the trigger - The load helper. - The object associated with the given trigger + - + - Select the triggers for a job + Resume (un-pause) all triggers - equivalent of calling + on every group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + - the DB Connection - the name of the trigger - the group containing the trigger - - an array of objects - associated with a given job. - + - + - Select the triggers for a calendar + Get a handle to the next trigger to be fired, and mark it as 'reserved' + by the calling scheduler. + + If > 0, the JobStore should only return a Trigger + that will fire no later than the time represented in this value as + milliseconds. + + + + + + + + + Inform the that the scheduler no longer plans to + fire the given , that it had previously acquired + (reserved). + + + + + Inform the that the scheduler is now firing the + given (executing its associated ), + that it had previously acquired (reserved). - The DB Connection. - Name of the calendar. - An array of objects associated with a given job. + May return null if all the triggers or their calendars no longer exist, or + if the trigger was not successfully put into the 'executing' + state. Preference is to return an empty list if none of the triggers + could be fired. - + - Selects the stateful jobs of trigger group. + Inform the that the scheduler has completed the + firing of the given (and the execution its + associated ), and that the + in the given should be updated if the + is stateful. - The database connection. - Name of the group. - - + - Select a trigger. + Indicates whether job store supports persistence. - the DB Connection - the name of the trigger - the group containing the trigger - The object + - + - Select a trigger's JobDataMap. + How long (in milliseconds) the implementation + estimates that it will take to release a trigger and acquire a new one. - the DB Connection - the name of the trigger - the group containing the trigger - The of the Trigger, never null, but possibly empty. - + - Select a trigger's state value. + Whether or not the implementation is clustered. - the DB Connection - the name of the trigger - the group containing the trigger - The object + - + - Select a trigger status (state and next fire time). + Inform the of the Scheduler instance's Id, + prior to initialize being invoked. - the DB Connection - the name of the trigger - the group containing the trigger - - a object, or null - - + - Select the total number of triggers stored. + Inform the of the Scheduler instance's name, + prior to initialize being invoked. - the DB Connection - the total number of triggers stored - + - Select all of the trigger group names that are stored. + Tells the JobStore the pool size used to execute jobs. - the DB Connection - - an array of group names - - + - Select all of the triggers contained in a given group. + Initializes a new instance of the class. - the DB Connection - the group containing the triggers - - an array of trigger names - - + - Inserts the paused trigger group. + Gets the connection and starts a new transaction. - The conn. - Name of the group. - + - Deletes the paused trigger group. + Called by the QuartzScheduler before the is + used, in order to give it a chance to Initialize. - The conn. - Name of the group. - - + + + + - Deletes all paused trigger groups. + Called by the QuartzScheduler to inform the JobStore that + the scheduler has been paused. - The conn. - - + - Determines whether the specified trigger group is paused. + Called by the QuartzScheduler to inform the JobStore that + the scheduler has resumed after being paused. - The conn. - Name of the group. - - true if trigger group is paused; otherwise, false. - - + - Determines whether given trigger group already exists. + Called by the QuartzScheduler to inform the that + it should free up all of it's resources because the scheduler is + shutting down. - The conn. - Name of the group. - - true if trigger group exists; otherwise, false. - - + - Insert a new calendar. + Will recover any failed or misfired jobs and clean up the data store as + appropriate. - the DB Connection - The name for the new calendar. - The calendar. - the number of rows inserted - IOException - + - Update a calendar. + Will recover any failed or misfired jobs and clean up the data store as + appropriate. - the DB Connection - The name for the new calendar. - The calendar. - the number of rows updated - IOException - + - Check whether or not a calendar exists. + Store the given and . - the DB Connection - The name of the calendar. - - true if the trigger exists, false otherwise - + Job to be stored. + Trigger to be stored. - + - Select a calendar. + returns true if the given JobGroup + is paused - the DB Connection - The name of the calendar. - the Calendar - ClassNotFoundException - IOException + + - + - Check whether or not a calendar is referenced by any triggers. + returns true if the given TriggerGroup + is paused - the DB Connection - The name of the calendar. - - true if any triggers reference the calendar, false otherwise - + + - + - Delete a calendar. + Stores the given . - the DB Connection - The name of the trigger. - the number of rows deleted + The to be stored. + + If , any existing in the + with the same name & group should be over-written. + - - - Select the total number of calendars stored. + + + Insert or update a job. + - the DB Connection - the total number of calendars stored - + - Select all of the stored calendars. + Check existence of a given job. - the DB Connection - - an array of calendar names - - + - Select the trigger that will be fired at the given fire time. + Store the given . - the DB Connection - the time that the trigger will be fired - - a representing the - trigger that will be fired at the given fire time, or null if no - trigger will be fired at that time - + The to be stored. + + If , any existing in + the with the same name & group should + be over-written. + + + if a with the same name/group already + exists, and replaceExisting is set to false. + - + - Select the next trigger which will fire to fire between the two given timestamps - in ascending order of fire time, and then descending by priority. + Insert or update a trigger. - The conn. - highest value of of the triggers (exclusive) - highest value of of the triggers (inclusive) - A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired. - + - Gets the select next trigger to acquire SQL clause. - This can be overriden for a more performant, result limiting - SQL. For Example SQL Server, MySQL and SQLite support limiting returned rows. + Check existence of a given trigger. - - + - Insert a fired trigger. + Remove (delete) the with the given + name, and any s that reference + it. - the DB Connection - the trigger - the state that the trigger should be stored in - The job. - the number of rows inserted + + + If removal of the results in an empty group, the + group should be removed from the 's list of + known group names. + + + if a with the given name & + group was found and removed from the store. + - + - Select the states of all fired-trigger records for a given trigger, or - trigger group if trigger name is . + Delete a job and its listeners. - The DB connection. - Name of the trigger. - Name of the group. - a List of objects. + + - + - Select the states of all fired-trigger records for a given job, or job - group if job name is . + Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry. - The DB connection. - Name of the job. - Name of the group. - a List of objects. + + + - + - Select the states of all fired-trigger records for a given scheduler - instance. + Retrieve the for the given + . - The DB Connection - Name of the instance. - A list of FiredTriggerRecord objects. + The key identifying the job. + The desired , or null if there is no match. - - - Select the distinct instance names of all fired-trigger records. - - The conn. - - - This is useful when trying to identify orphaned fired triggers (a - fired trigger without a scheduler state record.) - + + + Remove (delete) the with the + given name. + + + + + If removal of the results in an empty group, the + group should be removed from the 's list of + known group names. + + + + If removal of the results in an 'orphaned' + that is not 'durable', then the should be deleted + also. + + + The key identifying the trigger. + + if a with the given + name & group was found and removed from the store. + - - - Delete a fired trigger. - - the DB Connection - the fired trigger entry to delete - the number of rows deleted + + - + - Selects the job execution count. + Retrieve the given . - The DB connection. - Name of the job. - The job group. - + The key identifying the trigger. + The desired , or null if there is no match. - + - Delete all volatile fired triggers. + Get the current state of the identified . - The DB Connection - The number of rows deleted + + + + + - + - Inserts the state of the scheduler. + Gets the state of the trigger. The conn. - The instance id. - The check in time. - The interval. + The key identifying the trigger. - + - Deletes the state of the scheduler. + Store the given . - The database connection. - The instance id. - + The name of the calendar. + The to be stored. + + If , any existing + in the with the same name & group + should be over-written. + + + + if a with the same name already + exists, and replaceExisting is set to false. + + + + + Remove (delete) the with the given name. + + + If removal of the would result in + s pointing to non-existent calendars, then a + will be thrown. + + The name of the to be removed. + + if a with the given name + was found and removed from the store. + - + - Updates the state of the scheduler. + Retrieve the given . - The database connection. - The instance id. - The check in time. - + The name of the to be retrieved. + The desired , or null if there is no match. - + - A List of all current s. -

- If instanceId is not null, then only the record for the identified - instance will be returned. -

+ Get the number of s that are + stored in the .
- The DB Connection - The instance id. -
- + - Replace the table prefix in a query by replacing any occurrences of - "{0}" with the table prefix. + Get the number of s that are + stored in the . - The unsubstitued query - The query, with proper table prefix substituted - + - Create a serialized version of an Object. + Get the number of s that are + stored in the . - the object to serialize - Serialized object as byte array. - + - Remove the transient data from and then create a serialized - version of a and returns the underlying bytes. - - The data. - the serialized data as byte array - - - - serialize - - The data. - - - - - Convert the JobDataMap into a list of properties. - - - - - Convert the JobDataMap into a list of properties. + Get the names of all of the s that + have the given group name. + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + - + - This method should be overridden by any delegate subclasses that need - special handling for BLOBs. The default implementation uses standard - ADO.NET operations. + Determine whether a with the given identifier already + exists within the scheduler. - The data reader, already queued to the correct row. - The column index for the BLOB. - The deserialized object from the DataReader BLOB. + + + the identifier to check for + true if a Job exists with the given identifier - + - Get the names of all of the triggers that are volatile. + Determine whether a with the given identifier already + exists within the scheduler. - The DB Connection - An array of objects. + + + the identifier to check for + true if a Trigger exists with the given identifier - + - Get the names of all of the jobs that are volatile. + Clear (delete!) all scheduling data - all s, s + s. - The DB Connection - An array of objects. + + - + - This method should be overridden by any delegate subclasses that need - special handling for BLOBs for job details. + Get the names of all of the s + that have the given group name. - The result set, already queued to the correct row. - The column index for the BLOB. - The deserialized Object from the ResultSet BLOB. + + If there are no triggers in the given group name, the result should be a + zero-length array (not ). + - + - Selects the paused trigger groups. + Get the names of all of the + groups. - The DB Connection. - + + + If there are no known group names, the result should be a zero-length + array (not ). + - + - Gets the triggers to acquire limit. + Get the names of all of the + groups. - The triggers to acquire limit. + + + If there are no known group names, the result should be a zero-length + array (not ). + - + - Initializes a new instance of the class. + Get the names of all of the s + in the . - the logger to use during execution - the prefix of all table names - The instance id. - The db provider. + + If there are no Calendars in the given group name, the result should be + a zero-length array (not ). + - + - Initializes a new instance of the class. + Get all of the Triggers that are associated to the given Job. - The logger. - The table prefix. - The instance id. - The db provider. - if set to true [use properties]. + + If there are no matches, a zero-length array should be returned. + - + - Creates the SQL for select next trigger to acquire. + Pause the with the given name. - + - Gets the select next trigger to acquire SQL clause. - Firebird specific version with FIRST functionality + Pause the with the given name. - - + - Conveys the state of a fired-trigger record. + Pause the with the given name - by + pausing all of its current s. - James House + - + - Gets or sets the fire instance id. + Pause all of the s in the given + group - by pausing all of their s. - The fire instance id. + - + - Gets or sets the fire timestamp. + Determines if a Trigger for the given job should be blocked. + State can only transition to StatePausedBlocked/StateBlocked from + StatePaused/StateWaiting respectively. - The fire timestamp. + StatePausedBlocked, StateBlocked, or the currentState. - + - Gets or sets a value indicating whether [job is stateful]. + Resume (un-pause) the with the + given name. - true if [job is stateful]; otherwise, false. + + If the missed one or more fire-times, then the + 's misfire instruction will be applied. + - + - Gets or sets the job key. + Resume (un-pause) the with the + given name. - The job key. + + If any of the 's s missed one + or more fire-times, then the 's misfire + instruction will be applied. + + - + - Gets or sets the scheduler instance id. + Resume (un-pause) all of the s in + the given group. - The scheduler instance id. + + If any of the s had s that + missed one or more fire-times, then the 's + misfire instruction will be applied. + + - + - Gets or sets the trigger key. + Pause all of the s in the given group. - The trigger key. + - + - Gets or sets the state of the fire instance. + Pause all of the s in the given group. - The state of the fire instance. - - - Gets or sets a value indicating whether [job requests recovery]. + + + Pause all of the s in the + given group. - true if [job requests recovery]; otherwise, false. - + - Gets or sets a value indicating whether [trigger is volatile]. + Resume (un-pause) all of the s + in the given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + - true if [trigger is volatile]; otherwise, false. - + - Gets or sets the priority. + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + - The priority. + + - + - Exception class for when a driver delegate cannot be found for a given - configuration, or lack thereof. - - Jeffrey Wescott - - - - - Base class for exceptions thrown by the Quartz . + Resume (un-pause) all triggers - equivalent of calling + on every group. - SchedulerExceptions may contain a reference to another - , which was the underlying cause of the SchedulerException. + If any missed one or more fire-times, then the + 's misfire instruction will be applied. - James House - - - - Initializes a new instance of the class. - + - + - Initializes a new instance of the class. + Resume (un-pause) all triggers - equivalent of calling + on every group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + - The MSG. + - + - Initializes a new instance of the class. + Get a handle to the next N triggers to be fired, and mark them as 'reserved' + by the calling scheduler. - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The class name is null or is zero (0). - The info parameter is null. + - + - Initializes a new instance of the class. + Inform the that the scheduler no longer plans to + fire the given , that it had previously acquired + (reserved). - The MSG. - The error code. - + - Initializes a new instance of the class. + Inform the that the scheduler has completed the + firing of the given (and the execution its + associated ), and that the + in the given should be updated if the + is stateful. - The cause. - + - Initializes a new instance of the class. + Get a list of all scheduler instances in the cluster that may have failed. + This includes this scheduler if it is checking in for the first time. - The MSG. - The cause. - + - Initializes a new instance of the class. + Create dummy objects for fired triggers + that have no scheduler state record. Checkin timestamp and interval are + left as zero on these dummy objects. - The MSG. - The cause. - The error code. + + List of all current s - + - Creates and returns a string representation of the current exception. + Cleanup the given database connection. This means restoring + any modified auto commit or transaction isolation connection + attributes, and then closing the underlying connection. - - A string representation of the current exception. - - + + + This is separate from closeConnection() because the Spring + integration relies on being able to overload closeConnection() and + expects the same connection back that it originally returned + from the datasource. + + - - - Return the exception that is the underlying cause of this exception. - This may be used to find more detail about the cause of the error. + + + Closes the supplied connection. - The underlying exception, or if there is not - one. - + (Optional) - + - Get the error code associated with this exception. - This may be used to find more detail about the cause of the error. + Rollback the supplied connection. - - One of the ERR_XXX constants defined in this class. - - - -

- Determine if the specified error code is in the - category of errors. -

+ (Optional) + + JobPersistenceException thrown if a SQLException occurs when the + connection is rolled back - -

- Determine if the specified error code is in the - category of errors. -

+ + + Commit the supplied connection. + The CTH. + if set to true opens a new transaction. + JobPersistenceException thrown if a SQLException occurs when the - + - Determine if the specified error code is in the - category of errors. + Execute the given callback in a transaction. Depending on the JobStore, + the surrounding transaction may be assumed to be already present + (managed). + + This method just forwards to ExecuteInLock() with a null lockName. + + - + - Determine if the specified error code is in the - category of errors. + Execute the given callback having acquired the given lock. + Depending on the JobStore, the surrounding transaction may be + assumed to be already present (managed). This version is just a + handy wrapper around executeInLock that doesn't require a return + value. + + The name of the lock to acquire, for example + "TRIGGER_ACCESS". If null, then no lock is acquired, but the + lockCallback is still executed in a transaction. + + + The callback to excute after having acquired the given lock. + + - + - Determine if the specified error code is in the - category of errors. - + Execute the given callback having acquired the given lock. + Depending on the JobStore, the surrounding transaction may be + assumed to be already present (managed). +
+ + The name of the lock to acquire, for example + "TRIGGER_ACCESS". If null, then no lock is acquired, but the + lockCallback is still executed in a transaction. + + + The callback to excute after having acquired the given lock. +
- + - Determine if the specified error code is in the - category of errors. + Execute the given callback having optionally acquired the given lock. + This uses the non-managed transaction connection. This version is just a + handy wrapper around executeInNonManagedTXLock that doesn't require a return + value. + + The name of the lock to acquire, for example + "TRIGGER_ACCESS". If null, then no lock is acquired, but the + lockCallback is still executed in a non-managed transaction. + + + + The callback to excute after having acquired the given lock. + - + - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The class name is null or is zero (0). - The info parameter is null. - - - - is meant to be used in an application-server - or other software framework environment that provides - container-managed-transactions. No commit / rollback will be handled by this class. - - - If you need commit / rollback, use - instead. - - Jeffrey Wescott - James House - Srinivas Venkatarangaiah - - - - Contains base functionality for ADO.NET-based JobStore implementations. + Execute the given callback having optionally acquired the given lock. + This uses the non-managed transaction connection. - Jeffrey Wescott - James House - Marko Lahma (.NET) + + The name of the lock to acquire, for example + "TRIGGER_ACCESS". If null, then no lock is acquired, but the + lockCallback is still executed in a non-managed transaction. + + + The callback to excute after having acquired the given lock. + - + - The interface to be implemented by classes that want to provide a - and storage mechanism for the - 's use. + Get or set the datasource name. - - Storage of s and s should be keyed - on the combination of their name and group for uniqueness. - - - - - - - - James House - + - Called by the QuartzScheduler before the is - used, in order to give the it a chance to Initialize. + Gets the log. + The log. - - - Called by the QuartzScheduler to inform the that - the scheduler has started. + + + Get or sets the prefix that should be pre-pended to all table names. - + - Called by the QuartzScheduler to inform the that - it should free up all of it's resources because the scheduler is - shutting down. + Set whether string-only properties will be handled in JobDataMaps. - + - Store the given and . + Get or set the instance Id of the Scheduler (must be unique within a cluster). - The scheduling context. - The to be stored. - The to be stored. - ObjectAlreadyExistsException - + - returns true if the given JobGroup - is paused + Get or set the instance Id of the Scheduler (must be unique within this server instance). - - - - - - returns true if the given TriggerGroup - is paused + + + Get or set whether this instance is part of a cluster. - - - - + - Store the given . + Get or set the frequency at which this instance "checks-in" + with the other instances of the cluster. -- Affects the rate of + detecting failed instances. - The context. - The to be stored. - - If , any existing in the - with the same name and group should be - over-written. - - + - Remove (delete) the with the given - name, and any s that reference - it. + Get or set the maximum number of misfired triggers that the misfire handling + thread will try to recover at one time (within one transaction). The + default is 20. - - If removal of the results in an empty group, the - group should be removed from the 's list of - known group names. - - The context. - The name of the to be removed. - The group name of the to be removed. - - if a with the given name and - group was found and removed from the store. - - + - Retrieve the for the given - . + Gets or sets the database retry interval. - The context. - The name of the to be retrieved. - The group name of the to be retrieved. - - The desired , or null if there is no match. - + The db retry interval. - + - Store the given . + Get or set whether this instance should use database-based thread + synchronization. - The context. - The to be stored. - If , any existing in - the with the same name and group should - be over-written. - ObjectAlreadyExistsException - - - Remove (delete) the with the - given name. + + + Whether or not to obtain locks when inserting new jobs/triggers. + Defaults to , which is safest - some db's (such as + MS SQLServer) seem to require this to avoid deadlocks under high load, + while others seem to do fine without. -

- If removal of the results in an empty group, the - group should be removed from the 's list of - known group names. -

-

- If removal of the results in an 'orphaned' - that is not 'durable', then the should be deleted - also. -

+ Setting this property to will provide a + significant performance increase during the addition of new jobs + and triggers.
- The context. - The name of the to be removed. - The group name of the to be removed. - - if a with the given - name and group was found and removed from the store. -
- - - Remove (delete) the with the - given name, and store the new given one - which must be associated - with the same job. + + + The time span by which a trigger must have missed its + next-fire-time, in order for it to be considered "misfired" and thus + have its misfire instruction applied. - The context. - The name of the to be removed. - The group name of the to be removed. - The new to be stored. - - if a with the given - name and group was found and removed from the store. - - - - Retrieve the given . + + + Don't call set autocommit(false) on connections obtained from the + DataSource. This can be helpfull in a few situations, such as if you + have a driver that complains if it is called when it is already off. - The context. - The name of the to be retrieved. - The group name of the to be retrieved. - - The desired , or null if there is no - match. - - - - Store the given . + + + Set the transaction isolation level of DB connections to sequential. - The context. - The name. - The to be stored. - If , any existing - in the with the same name and group - should be over-written. - If , any s existing - in the that reference an existing - Calendar with the same name with have their next fire time - re-computed with the new . - ObjectAlreadyExistsException - + - Remove (delete) the with the - given name. + Whether or not the query and update to acquire a Trigger for firing + should be performed after obtaining an explicit DB lock (to avoid + possible race conditions on the trigger's db row). This is + is considered unnecessary for most databases (due to the nature of + the SQL update that is performed), and therefore a superfluous performance hit. - If removal of the would result in - s pointing to non-existent calendars, then a - will be thrown. + However, if batch acquisition is used, it is important for this behavior + to be used for all dbs. - The context. - The name of the to be removed. - - if a with the given name - was found and removed from the store. - - - - Retrieve the given . + + + Get or set the ADO.NET driver delegate class name. - The context. - The name of the to be retrieved. - - The desired , or null if there is no - match. - - + - Get the number of s that are - stored in the . + The driver delegate's initialization string. - The context. - - + - Get the number of s that are - stored in the . + set the SQL statement to use to select and lock a row in the "locks" + table. - The context. - + - + - Get the number of s that are - stored in the . + Get whether the threads spawned by this JobStore should be + marked as daemon. Possible threads include the + and the . - The context. - + - Get the names of all of the s that - have the given group name. -

- If there are no jobs in the given group name, the result should be a - zero-length array (not ). -

+ Get whether to check to see if there are Triggers that have misfired + before actually acquiring the lock to recover them. This should be + set to false if the majority of the time, there are are misfired + Triggers.
- The CTX. - Name of the group.
- + - Get the names of all of the s - that have the given group name. -

- If there are no triggers in the given group name, the result should be a - zero-length array (not ). -

+ Get the driver delegate for DB operations.
- + - Get the names of all of the - groups. -

- If there are no known group names, the result should be a zero-length - array (not ). -

+ Get whether String-only properties will be handled in JobDataMaps.
- + - Get the names of all of the - groups. -

- If there are no known group names, the result should be a zero-length - array (not ). -

+ Indicates whether this job store supports persistence.
+ +
- - - Get the names of all of the s - in the . - -

- If there are no Calendars in the given group name, the result should be - a zero-length array (not ). -

+ + + An interface for classes wishing to provide the service of loading classes + and resources within the scheduler... + James House + Marko Lahma (.NET) - - - Get all of the Triggers that are associated to the given Job. + + + Called to give the ClassLoadHelper a chance to Initialize itself, + including the oportunity to "steal" the class loader off of the calling + thread, which is the thread that is initializing Quartz. - - If there are no matches, a zero-length array should be returned. - - - - Get the current state of the identified . + + + Return the class with the given name. - - - - - - + + + Finds a resource with a given name. This method returns null if no + resource with this name is found. + + name of the desired resource + + a java.net.URL object + + + + + Finds a resource with a given name. This method returns null if no + resource with this name is found. + + name of the desired resource + + a java.io.InputStream object + + + - Pause the with the given name. + Helper class for returning the composite result of trying + to recover misfired jobs. - + - Pause all of the s in the - given group. + Initializes a new instance of the class. - - The JobStore should "remember" that the group is paused, and impose the - pause on any new triggers that are added to the group while the group is - paused. - + if set to true [has more misfired triggers]. + The processed misfired trigger count. + - + - Pause the with the given name - by - pausing all of its current s. + Gets a value indicating whether this instance has more misfired triggers. + + true if this instance has more misfired triggers; otherwise, false. + - + - Pause all of the s in the given - group - by pausing all of their s. -

- The JobStore should "remember" that the group is paused, and impose the - pause on any new jobs that are added to the group while the group is - paused. -

+ Gets the processed misfired trigger count.
- - + The processed misfired trigger count.
- + - Resume (un-pause) the with the - given name. - -

- If the missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize.
- - + +
- + - Resume (un-pause) all of the s - in the given group. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ Called by the QuartzScheduler to inform the that + it should free up all of it's resources because the scheduler is + shutting down.
- + - Gets the paused trigger groups. + Gets the non managed TX connection. - The context. - - - Resume (un-pause) the with the - given name. -

- If any of the 's s missed one - or more fire-times, then the 's misfire - instruction will be applied. -

+ + + Execute the given callback having optionally acquired the given lock. + Because CMT assumes that the connection is already part of a managed + transaction, it does not attempt to commit or rollback the + enclosing transaction. + + + + + + The name of the lock to acquire, for example + "TRIGGER_ACCESS". If null, then no lock is acquired, but the + txCallback is still executed in a transaction. + + Callback to execute. - + - Resume (un-pause) all of the s in - the given group. -

- If any of the s had s that - missed one or more fire-times, then the 's - misfire instruction will be applied. -

+ is meant to be used in a standalone environment. + Both commit and rollback will be handled by this class.
+ Jeffrey Wescott + James House + Marko Lahma (.NET)
- + - Pause all triggers - equivalent of calling - on every group. -

- When is called (to un-pause), trigger misfire - instructions WILL be applied. -

+ Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize.
- + +
- + - Resume (un-pause) all triggers - equivalent of calling - on every group. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

- -
- + For , the non-managed TX connection is just + the normal connection because it is not CMT. +
+
- + - Get a handle to the next trigger to be fired, and mark it as 'reserved' - by the calling scheduler. + Execute the given callback having optionally aquired the given lock. + For , because it manages its own transactions + and only has the one datasource, this is the same behavior as + . - The context. - If > 0, the JobStore should only return a Trigger - that will fire no later than the time represented in this value as - milliseconds. + + The name of the lock to aquire, for example "TRIGGER_ACCESS". + If null, then no lock is aquired, but the lockCallback is still + executed in a transaction. + + Callback to execute. - - + + + + - - - Inform the that the scheduler no longer plans to - fire the given , that it had previously acquired - (reserved). + + + Exception class for when there is a failure obtaining or releasing a + resource lock. + + James House + Marko Lahma (.NET) - + - Inform the that the scheduler is now firing the - given (executing its associated ), - that it had previously acquired (reserved). + An exception that is thrown to indicate that there has been a failure in the + scheduler's underlying persistence mechanism. - null if the trigger or it's job or calendar no longer exist, or - if the trigger was not successfully put into the 'executing' - state. - + James House + Marko Lahma (.NET) - - - Inform the that the scheduler has completed the - firing of the given (and the execution its - associated ), and that the - in the given should be updated if the - is stateful. + + + Create a with the given message. + - + - Supports the persistence. + Initializes a new instance of the class. - + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The class name is null or is zero (0). + The info parameter is null. - - - Initializes a new instance of the class. + + + Create a with the given message + and cause. + - + - Gets the connection and starts a new transaction. + Initializes a new instance of the class. - + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The class name is null or is zero (0). + The info parameter is null. - + - Called by the QuartzScheduler before the is - used, in order to give it a chance to Initialize. + This is a driver delegate for the MySQL ADO.NET driver. + Marko Lahma - - - - + - Called by the QuartzScheduler to inform the that - it should free up all of it's resources because the scheduler is - shutting down. + This is meant to be an abstract base class for most, if not all, + implementations. Subclasses should override only those methods that need + special handling for the DBMS driver in question. + Jeffrey Wescott + James House + Marko Lahma (.NET) - + - Removes all volatile data. + Initializes the driver delegate. - + - Removes all volatile data. + Insert the job detail record. + the DB Connection + the new state for the triggers + the first old state to update + the second old state to update + number of rows updated - + - Will recover any failed or misfired jobs and clean up the data store as - appropriate. + Get the names of all of the triggers that have misfired. + the DB Connection + The ts. + an array of objects - - - Will recover any failed or misfired jobs and clean up the data store as - appropriate. + + + Select all of the triggers in a given state. + The DB Connection + The state the triggers must be in + an array of trigger s - + - Store the given and . + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. - SchedulingContext - Job to be stored. - Trigger to be stored. + The DB Connection + The state. + The time stamp. + An array of objects - + - returns true if the given JobGroup - is paused + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. No more than count will + be returned. - - - + The conn. + The state1. + The ts. + The most misfired triggers to return, negative for all + + Output parameter. A List of objects. Must not be null + + Whether there are more misfired triggers left to find beyond the given count. - + - returns true if the given TriggerGroup - is paused + Get the number of triggers in the given state that have + misfired - according to the given timestamp. - - + + + - + - Stores the given . - - - The to be stored. - - If , any existing in the - with the same name & group should be over-written. - - - -

- Insert or update a job. -

-
-
- - - Check existence of a given job. + Get the names of all of the triggers in the given group and state that + have misfired. + The DB Connection + Name of the group. + The state. + The timestamp. + an array of objects - + - Store the given . + Select all of the triggers for jobs that are requesting recovery. The + returned trigger objects will have unique "recoverXXX" trigger names and + will be in the + trigger group. - - The to be stored. - - If , any existing in - the with the same name & group should - be over-written. - - - if a with the same name/group already - exists, and replaceExisting is set to false. - + + In order to preserve the ordering of the triggers, the fire time will be + set from the ColumnFiredTime column in the TableFiredTriggers + table. The caller is responsible for calling + on each returned trigger. It is also up to the caller to insert the + returned triggers to ensure that they are fired. + + The DB Connection + an array of objects - + - Insert or update a trigger. + Delete all fired triggers. + The DB Connection. + The number of rows deleted. - + - Check existence of a given trigger. + Delete all fired triggers of the given instance. + The DB Connection + The instance id. + The number of rows deleted - + - Remove (delete) the with the given - name, and any s that reference - it. + Clear (delete!) all scheduling data - all s, s + s. - - If removal of the results in an empty group, the - group should be removed from the 's list of - known group names. - - The name of the to be removed. - The group name of the to be removed. - - if a with the given name & - group was found and removed from the store. - - + - Delete a job and its listeners. + Insert the job detail record. - - + The DB Connection. + The job to insert. + Number of rows inserted. - + - Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry. + Gets the db presentation for boolean value. Subclasses can overwrite this behaviour. - - - + Value to map to database. + - + - Retrieve the for the given - . + Gets the boolean value from db presentation. Subclasses can overwrite this behaviour. - The name of the to be retrieved. - The group name of the to be retrieved. - The desired , or null if there is no match. - - - - Remove (delete) the with the - given name. - - - -

- If removal of the results in an empty group, the - group should be removed from the 's list of - known group names. -

- -

- If removal of the results in an 'orphaned' - that is not 'durable', then the should be deleted - also. -

-
- The name of the to be removed. - The group name of the to be removed. - - if a with the given - name & group was found and removed from the store. - -
- - + Value to map from database. + - + - Retrieve the given . + Gets the db presentation for date/time value. Subclasses can overwrite this behaviour. - The name of the to be retrieved. - The group name of the to be retrieved. - The desired , or null if there is no match. + Value to map to database. + - + - Get the current state of the identified . + Gets the date/time value from db presentation. Subclasses can overwrite this behaviour. - - - - - + Value to map from database. + - + - Gets the state of the trigger. + Gets the db presentation for time span value. Subclasses can overwrite this behaviour. - The conn. - The CTXT. - Name of the trigger. - Name of the group. + Value to map to database. - + - Store the given . + Gets the time span value from db presentation. Subclasses can overwrite this behaviour. - The name of the calendar. - The to be stored. - - If , any existing - in the with the same name & group - should be over-written. - - - if a with the same name already - exists, and replaceExisting is set to false. - - - - - Remove (delete) the with the given name. - - - If removal of the would result in - s pointing to non-existent calendars, then a - will be thrown. - - The name of the to be removed. - - if a with the given name - was found and removed from the store. - + Value to map from database. + - + - Retrieve the given . + Update the job detail record. - The name of the to be retrieved. - The desired , or null if there is no match. + The DB Connection. + The job to update. + Number of rows updated. - + - Get the number of s that are - stored in the . + Get the names of all of the triggers associated with the given job. + The DB Connection. + The key identifying the job. + An array of objects - + - Get the number of s that are - stored in the . + Delete the job detail record for the given job. + the DB Connection + The key identifying the job. + the number of rows deleted - + - Get the number of s that are - stored in the . + Check whether or not the given job is stateful. + the DB Connection + The key identifying the job. + + true if the job exists and is stateful, false otherwise + - + - Get the names of all of the s that - have the given group name. + Check whether or not the given job exists. - - If there are no jobs in the given group name, the result should be a - zero-length array (not ). - + the DB Connection + The key identifying the job. + true if the job exists, false otherwise - + - Get the names of all of the s - that have the given group name. + Update the job data map for the given job. - - If there are no triggers in the given group name, the result should be a - zero-length array (not ). - + The conn. + the job to update + the number of rows updated - + - Get the names of all of the - groups. + Select the JobDetail object for a given job name / group name. - - - If there are no known group names, the result should be a zero-length - array (not ). - + The DB Connection. + The key identifying the job. + The load helper. + The populated JobDetail object. - - - Get the names of all of the - groups. - - - - If there are no known group names, the result should be a zero-length - array (not ). - + + build Map from java.util.Properties encoding. - + - Get the names of all of the s - in the . + Select the total number of jobs stored. - - If there are no Calendars in the given group name, the result should be - a zero-length array (not ). - + The DB Connection. + The total number of jobs stored. - + - Get all of the Triggers that are associated to the given Job. + Select all of the job group names that are stored. - - If there are no matches, a zero-length array should be returned. - + The DB Connection. + An array of group names. - + - Pause the with the given name. + Select all of the jobs contained in a given group. - + The DB Connection. + + An array of job names. - + - Pause the with the given name. + Insert the base trigger data. - + the DB Connection + the trigger to insert + the state that the trigger should be stored in + The job detail. + the number of rows inserted - + - Pause the with the given name - by - pausing all of its current s. + Insert the blob trigger data. - + The DB Connection. + The trigger to insert. + The number of rows inserted. - + - Pause all of the s in the given - group - by pausing all of their s. + Update the base trigger data. - + The DB Connection. + The trigger to insert. + The state that the trigger should be stored in. + The job detail. + The number of rows updated. - + - Determines if a Trigger for the given job should be blocked. - State can only transition to StatePausedBlocked/StateBlocked from - StatePaused/StateWaiting respectively. + Update the blob trigger data. - StatePausedBlocked, StateBlocked, or the currentState. + The DB Connection. + The trigger to insert. + The number of rows updated. - + - Resume (un-pause) the with the - given name. + Check whether or not a trigger exists. - - If the missed one or more fire-times, then the - 's misfire instruction will be applied. - - + The DB Connection. + the key of the trigger + true if the trigger exists, false otherwise - + - Resume (un-pause) the with the - given name. + Update the state for a given trigger. - - If any of the 's s missed one - or more fire-times, then the 's misfire - instruction will be applied. - - + The DB Connection. + the key of the trigger + The new state for the trigger. + The number of rows updated. - + - Resume (un-pause) all of the s in - the given group. + Update the given trigger to the given new state, if it is one of the + given old states. - - If any of the s had s that - missed one or more fire-times, then the 's - misfire instruction will be applied. - - + The DB connection. + the key of the trigger + The new state for the trigger. + One of the old state the trigger must be in. + One of the old state the trigger must be in. + One of the old state the trigger must be in. + The number of rows updated. - + - Pause all of the s in the given group. - - - - - - Pause all of the s in the given group. + Update all triggers in the given group to the given new state, if they + are in one of the given old states. - + The DB connection. + + The new state for the trigger. + One of the old state the trigger must be in. + One of the old state the trigger must be in. + One of the old state the trigger must be in. + The number of rows updated. - - - Pause all of the s in the - given group. + + + Update the given trigger to the given new state, if it is in the given + old state. - + the DB connection + the key of the trigger + the new state for the trigger + the old state the trigger must be in + int the number of rows updated - + - Resume (un-pause) all of the s - in the given group. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ Update all of the triggers of the given group to the given new state, if + they are in the given old state.
- + the DB connection + + the new state for the trigger group + the old state the triggers must be in + int the number of rows updated
- + - Pause all triggers - equivalent of calling - on every group. -

- When is called (to un-pause), trigger misfire - instructions WILL be applied. -

+ Update the states of all triggers associated with the given job.
- - + the DB Connection + the key of the job + the new state for the triggers + the number of rows updated
- + - Resume (un-pause) all triggers - equivalent of calling - on every group. + Updates the state of the trigger states for job from other. - - If any missed one or more fire-times, then the - 's misfire instruction will be applied. - - + The conn. + Key of the job. + The state. + The old state. + - + - Resume (un-pause) all triggers - equivalent of calling - on every group. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ Delete the cron trigger data for a trigger.
- + the DB Connection + the key of the trigger + the number of rows deleted
- + - Get a handle to the next N triggers to be fired, and mark them as 'reserved' - by the calling scheduler. + Delete the base trigger data for a trigger. - + the DB Connection + the key of the trigger + the number of rows deleted - + - Inform the that the scheduler no longer plans to - fire the given , that it had previously acquired - (reserved). + Select the number of triggers associated with a given job. + the DB Connection + the key of the job + the number of triggers for the given job - + - Inform the that the scheduler has completed the - firing of the given (and the execution its - associated ), and that the - in the given should be updated if the - is stateful. + Select the job to which the trigger is associated. + the DB Connection + the key of the trigger + The load helper. + The object associated with the given trigger - + - Get a list of all scheduler instances in the cluster that may have failed. - This includes this scheduler if it is checking in for the first time. + Select the triggers for a job + the DB Connection + the key of the job + + an array of objects + associated with a given job. + - + - Create dummy objects for fired triggers - that have no scheduler state record. Checkin timestamp and interval are - left as zero on these dummy objects. + Select the triggers for a calendar - List of all current s + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + - + - Cleanup the given database connection. This means restoring - any modified auto commit or transaction isolation connection - attributes, and then closing the underlying connection. + Select a trigger. - - - This is separate from closeConnection() because the Spring - integration relies on being able to overload closeConnection() and - expects the same connection back that it originally returned - from the datasource. - - + the DB Connection + the key of the trigger + The object - - - Closes the supplied connection. + + + Select a trigger's JobDataMap. - (Optional) + the DB Connection + the key of the trigger + The of the Trigger, never null, but possibly empty. - + - Rollback the supplied connection. - - (Optional) - - JobPersistenceException thrown if a SQLException occurs when the - connection is rolled back + Select a trigger's state value. + the DB Connection + the key of the trigger + The object - + - Commit the supplied connection. + Select a trigger status (state and next fire time). - The CTH. - if set to true opens a new transaction. - JobPersistenceException thrown if a SQLException occurs when the + the DB Connection + the key of the trigger + + a object, or null + - + - Execute the given callback in a transaction. Depending on the JobStore, - the surrounding transaction may be assumed to be already present - (managed). + Select the total number of triggers stored. - - This method just forwards to ExecuteInLock() with a null lockName. - - + the DB Connection + the total number of triggers stored - + - Execute the given callback having aquired the given lock. - Depending on the JobStore, the surrounding transaction may be - assumed to be already present (managed). This version is just a - handy wrapper around executeInLock that doesn't require a return - value. + Select all of the trigger group names that are stored. - - The name of the lock to aquire, for example - "TRIGGER_ACCESS". If null, then no lock is aquired, but the - lockCallback is still executed in a transaction. - - + the DB Connection + + an array of group names + - + - Execute the given callback having aquired the given lock. - Depending on the JobStore, the surrounding transaction may be - assumed to be already present (managed). - - - The name of the lock to aquire, for example - "TRIGGER_ACCESS". If null, then no lock is aquired, but the - lockCallback is still executed in a transaction. - + Select all of the triggers contained in a given group. + + the DB Connection + + + an array of trigger names + - + - Execute the given callback having optionally aquired the given lock. - This uses the non-managed transaction connection. This version is just a - handy wrapper around executeInNonManagedTXLock that doesn't require a return - value. + Inserts the paused trigger group. - - The name of the lock to aquire, for example - "TRIGGER_ACCESS". If null, then no lock is aquired, but the - lockCallback is still executed in a non-managed transaction. - - + The conn. + Name of the group. + - + - Execute the given callback having optionally aquired the given lock. - This uses the non-managed transaction connection. + Deletes the paused trigger group. - - The name of the lock to aquire, for example - "TRIGGER_ACCESS". If null, then no lock is aquired, but the - lockCallback is still executed in a non-managed transaction. - + The conn. + Name of the group. + - - - Get or set the datasource name. + + + Deletes all paused trigger groups. + The conn. + - + - Gets the log. + Determines whether the specified trigger group is paused. - The log. + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + - - - Get or sets the prefix that should be pre-pended to all table names. + + + Determines whether given trigger group already exists. + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + - + - Set whether string-only properties will be handled in JobDataMaps. + Insert a new calendar. + the DB Connection + The name for the new calendar. + The calendar. + the number of rows inserted + IOException - + - Get or set the instance Id of the Scheduler (must be unique within a cluster). + Update a calendar. + the DB Connection + The name for the new calendar. + The calendar. + the number of rows updated + IOException - + - Get or set the instance Id of the Scheduler (must be unique within this server instance). + Check whether or not a calendar exists. + the DB Connection + The name of the calendar. + + true if the trigger exists, false otherwise + - - - Get or set whether this instance is part of a cluster. + + + Select a calendar. + the DB Connection + The name of the calendar. + the Calendar + ClassNotFoundException + IOException - + - Get or set the frequency at which this instance "checks-in" - with the other instances of the cluster. -- Affects the rate of - detecting failed instances. + Check whether or not a calendar is referenced by any triggers. + the DB Connection + The name of the calendar. + + true if any triggers reference the calendar, false otherwise + - + - Get or set the maximum number of misfired triggers that the misfire handling - thread will try to recover at one time (within one transaction). The - default is 20. + Delete a calendar. + the DB Connection + The name of the trigger. + the number of rows deleted - + - Gets or sets the database retry interval. + Select the total number of calendars stored. - The db retry interval. + the DB Connection + the total number of calendars stored - + - Get or set whether this instance should use database-based thread - synchronization. + Select all of the stored calendars. + the DB Connection + + an array of calendar names + - - - Whether or not to obtain locks when inserting new jobs/triggers. - Defaults to , which is safest - some db's (such as - MS SQLServer) seem to require this to avoid deadlocks under high load, - while others seem to do fine without. + + + Select the trigger that will be fired at the given fire time. - - Setting this property to will provide a - significant performance increase during the addition of new jobs - and triggers. - + the DB Connection + the time that the trigger will be fired + + a representing the + trigger that will be fired at the given fire time, or null if no + trigger will be fired at that time + - - - The time span by which a trigger must have missed its - next-fire-time, in order for it to be considered "misfired" and thus - have its misfire instruction applied. + + + Select the next trigger which will fire to fire between the two given timestamps + in ascending order of fire time, and then descending by priority. + The conn. + highest value of of the triggers (exclusive) + highest value of of the triggers (inclusive) + maximum number of trigger keys allow to acquired in the returning list. + A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired. - - - Don't call set autocommit(false) on connections obtained from the - DataSource. This can be helpfull in a few situations, such as if you - have a driver that complains if it is called when it is already off. + + + Insert a fired trigger. + the DB Connection + the trigger + the state that the trigger should be stored in + The job. + the number of rows inserted - - - Set the transaction isolation level of DB connections to sequential. + + + + Update a fired trigger. + + + + + the DB Connection + + the trigger + + + the state that the trigger should be stored in + the number of rows inserted - + - Whether or not the query and update to acquire a Trigger for firing - should be performed after obtaining an explicit DB lock (to avoid - possible race conditions on the trigger's db row). This is - is considered unnecessary for most databases (due to the nature of - the SQL update that is performed), and therefore a superfluous performance hit. + Select the states of all fired-trigger records for a given trigger, or + trigger group if trigger name is . + The DB connection. + Name of the trigger. + Name of the group. + a List of objects. - - - Get or set the ADO.NET driver delegate class name. + + + Select the states of all fired-trigger records for a given job, or job + group if job name is . + The DB connection. + Name of the job. + Name of the group. + a List of objects. - + - set the SQL statement to use to select and lock a row in the "locks" - table. + Select the states of all fired-trigger records for a given scheduler + instance. - + The DB Connection + Name of the instance. + A list of FiredTriggerRecord objects. - + - Get whether the threads spawned by this JobStore should be - marked as daemon. Possible threads include the - and the . + Select the distinct instance names of all fired-trigger records. + The conn. + + This is useful when trying to identify orphaned fired triggers (a + fired trigger without a scheduler state record.) + - + - Get whether to check to see if there are Triggers that have misfired - before actually acquiring the lock to recover them. This should be - set to false if the majority of the time, there are are misfired - Triggers. + Delete a fired trigger. - + the DB Connection + the fired trigger entry to delete + the number of rows deleted - + - Get the driver delegate for DB operations. + Selects the job execution count. + The DB connection. + The key of the job. + - + - Get whether String-only properties will be handled in JobDataMaps. + Inserts the state of the scheduler. + The conn. + The instance id. + The check in time. + The interval. + - + - Indicates whether this job store supports persistence. + Deletes the state of the scheduler. - + The database connection. + The instance id. - + - Implement this interface to provide the code to execute within - the a transaction template that has no return value. + Updates the state of the scheduler. - + The database connection. + The instance id. + The check in time. + - + - Implement this interface to provide the code to execute within - the a transaction template. If no return value is required, execute - should just return null. + A List of all current s. + + If instanceId is not null, then only the record for the identified + instance will be returned. + - - - + The DB Connection + The instance id. + - - - An interface for classes wishing to provide the service of loading classes - and resources within the scheduler... + + + Replace the table prefix in a query by replacing any occurrences of + "{0}" with the table prefix. - James House + The unsubstitued query + The query, with proper table prefix substituted - - - Called to give the ClassLoadHelper a chance to Initialize itself, - including the oportunity to "steal" the class loader off of the calling - thread, which is the thread that is initializing Quartz. + + + Create a serialized version of an Object. + the object to serialize + Serialized object as byte array. - - - Return the class with the given name. + + + Remove the transient data from and then create a serialized + version of a and returns the underlying bytes. + The data. + the serialized data as byte array - - - Finds a resource with a given name. This method returns null if no - resource with this name is found. + + + serialize - name of the desired resource - - a java.net.URL object - + The data. + - + - Finds a resource with a given name. This method returns null if no - resource with this name is found. + Convert the JobDataMap into a list of properties. - name of the desired resource - - a java.io.InputStream object - - + - Helper class for returning the composite result of trying - to recover misfired jobs. + Convert the JobDataMap into a list of properties. - + - Initializes a new instance of the class. + This method should be overridden by any delegate subclasses that need + special handling for BLOBs. The default implementation uses standard + ADO.NET operations. - if set to true [has more misfired triggers]. - The processed misfired trigger count. - + The data reader, already queued to the correct row. + The column index for the BLOB. + The deserialized object from the DataReader BLOB. - + - Gets a value indicating whether this instance has more misfired triggers. + This method should be overridden by any delegate subclasses that need + special handling for BLOBs for job details. - - true if this instance has more misfired triggers; otherwise, false. - + The result set, already queued to the correct row. + The column index for the BLOB. + The deserialized Object from the ResultSet BLOB. - + - Gets the processed misfired trigger count. + Selects the paused trigger groups. - The processed misfired trigger count. + The DB Connection. + - + - Called by the QuartzScheduler before the is - used, in order to give the it a chance to Initialize. + Gets the select next trigger to acquire SQL clause. + MySQL version with LIMIT support. - - + - - - Called by the QuartzScheduler to inform the that - it should free up all of it's resources because the scheduler is - shutting down. - - - - - Gets the non managed TX connection. - - - - - - Execute the given callback having optionally aquired the given lock. - Because CMT assumes that the connection is already part of a managed - transaction, it does not attempt to commit or rollback the - enclosing transaction. - - - - - - - The name of the lock to aquire, for example - "TRIGGER_ACCESS". If null, then no lock is aquired, but the - txCallback is still executed in a transaction. - - Callback to execute. - - - - Utility class to keep track of both active transaction - and connection. - - - - - Initializes a new instance of the class. - - The connection. - The transaction. - - - - Gets or sets the connection. - - The connection. - - - - Gets or sets the transaction. - - The transaction. - - - - is meant to be used in a standalone environment. - Both commit and rollback will be handled by this class. - - Jeffrey Wescott - James House - - - - Called by the QuartzScheduler before the is - used, in order to give the it a chance to Initialize. - - - - - - - For , the non-managed TX connection is just - the normal connection because it is not CMT. - - - - - - Execute the given callback having optionally aquired the given lock. - For , because it manages its own transactions - and only has the one datasource, this is the same behavior as - . - - - The name of the lock to aquire, for example "TRIGGER_ACCESS". - If null, then no lock is aquired, but the lockCallback is still - executed in a transaction. - - Callback to execute. - - - - - - - - - Exception class for when there is a failure obtaining or releasing a - resource lock. - - - James House - - - - An exception that is thrown to indicate that there has been a failure in the - scheduler's underlying persistence mechanism. - - James House - - - -

- Create a with the given message. -

-
-
- - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The class name is null or is zero (0). - The info parameter is null. - - -

- Create a with the given message - and error code. -

-
-
- -

- Create a with the given message - and cause. -

-
-
- -

- Create a with the given message, - cause and error code. -

-
-
- - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The class name is null or is zero (0). - The info parameter is null. - - - - This is a driver delegate for the MySQL ADO.NET driver. - - Marko Lahma - - - - Initializes a new instance of the class. - - the logger to use during execution - the prefix of all table names - The instance id. - The db provider. - - - - Initializes a new instance of the class. - - The logger. - The table prefix. - The instance id. - The db provider. - if set to true [use properties]. - - - - Gets the select next trigger to acquire SQL clause. - MySQL version with LIMIT support. - - - - + Exception class for when a driver delegate cannot be found for a given configuration, or lack thereof. Jeffrey Wescott + Marko Lahma (.NET) @@ -5656,67 +5580,16 @@ Marko Lahma - - - Initializes a new instance of the class. - - the logger to use during execution - the prefix of all table names - The instance id. - The db provider. - - - - Initializes a new instance of the class. - - The logger. - The table prefix. - The instance id. - The db provider. - if set to true [use properties]. - - + Creates the SQL for select next trigger to acquire. - - - Gets the select next trigger to acquire SQL clause. - Oracle version with rownum support. - - - - - - This is a driver delegate for the PostgreSQL ADO.NET driver. - - Marko Lahma - - - - Initializes a new instance of the class. - - The log. - The table prefix. - The instance id. - The db provider. - - - - Initializes a new instance of the class. - - The log. - The table prefix. - The instance id. - The db provider. - if set to true [use properties]. - - + - Gets the select next trigger to acquire SQL clause. - PostgreSQL version with LIMIT support. + Gets the db presentation for boolean value. For Oracle we use true/false of "1"/"0". + Value to map to database. @@ -5724,6 +5597,7 @@ Conveys a scheduler-instance state record.
James House + Marko Lahma (.NET)
@@ -5750,6 +5624,7 @@ same time. James House + Marko Lahma (.NET) @@ -5791,26 +5666,7 @@ Marko Lahma - - - Initializes a new instance of the class. - - the logger to use during execution - the prefix of all table names - The instance id. - The db provider. - - - - Initializes a new instance of the class. - - The logger. - The table prefix. - The instance id. - The db provider. - if set to true [use properties]. - - + Gets the select next trigger to acquire SQL clause. SQLite version with LIMIT support. @@ -5823,31 +5679,7 @@ Marko Lahma - - - Initializes a new instance of the class. - - the logger to use during execution - the prefix of all table names - The instance id. - The db provider. - - - - Initializes a new instance of the class. - - The logger. - The table prefix. - The instance id. - The db provider. - if set to true [use properties]. - - - - Creates the SQL for select next trigger to acquire. - - - + Gets the select next trigger to acquire SQL clause. SQL Server specific version with TOP functionality @@ -5861,17 +5693,46 @@ same time. James House + Marko Lahma (.NET) - + Initializes a new instance of the class. The table prefix. + the scheduler name The select with lock SQL. - + + Execute the SQL select for update that will lock the proper database row. + + + + + Property name and value holder for trigger state data. + + + + + Object representing a job or trigger key. + + James House + Marko Lahma (.NET) + + + + Construct a new TriggerStatus with the status name and nextFireTime. + + The trigger's status + The next time trigger will fire + + + + Return the string representation of the TriggerStatus. + + @@ -5880,23 +5741,30 @@ a db row update. + Note: This Semaphore implementation is useful for databases that do - not support row locking via "SELECT FOR UPDATE" type syntax, for example - Microsoft SQLServer (MSSQL). + not support row locking via "SELECT FOR UPDATE" or SQL Server's type syntax. + + + As of Quartz.NET 2.0 version there is no need to use this implementation for + SQL Server databases. + + Marko Lahma (.NET) - + Initializes a new instance of the class. - + Execute the SQL that will lock the proper database row. + @@ -5906,6 +5774,7 @@ Juergen Donnerstag + Marko Lahma (.NET) @@ -5923,31 +5792,38 @@ Juergen Donnerstag James House + Marko Lahma (.NET) - An interface to be implemented by objects that define spaces of time during - which an associated may fire. + An interface to be implemented by objects that define spaces of time during + which an associated may (not) fire. Calendars + do not define actual fire times, but rather are used to limit a + from firing on its normal schedule if necessary. Most + Calendars include all times by default and allow the user to specify times + to exclude. - Calendars do not define actual fire times, but rather are used to limit a - from firing on its normal schedule if necessary. Most - Calendars include all times by default and allow the user to specify times to - exclude. As such, it is often useful to think of Calendars as being used to - exclude a block of time, as opposed to include - a block of time. (i.e. the schedule "fire every five minutes except on Sundays" could be - implemented with a and a which excludes Sundays) + As such, it is often useful to think of Calendars as being used to exclude a block + of time - as opposed to include a block of time. (i.e. the + schedule "fire every five minutes except on Sundays" could be + implemented with a and a + which excludes Sundays) + + Implementations MUST take care of being properly cloneable and Serializable. + James House Juergen Donnerstag + Marko Lahma (.NET) - + Determine whether the given UTC time is 'included' by the Calendar. - + Determine the next UTC time that is 'included' by the Calendar after the given UTC time. @@ -5990,6 +5866,13 @@ The base calendar. The time zone. + + + Serialization constructor. + + + + checks whether two arrays have @@ -6004,21 +5887,27 @@ Get the base calendar. Will be null, if not set. - + Check if date/time represented by timeStamp is included. If included return true. The implementation of BaseCalendar simply calls the base calendars IsTimeIncluded() method if base calendar is set. - + - + Determine the next UTC time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return 0 if all days are excluded. - + + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. @@ -6049,33 +5938,40 @@ The base calendar. - + + + Serialization constructor. + + + + + Return true, if day is defined to be exluded. - + Redefine a certain day to be excluded (true) or included (false). - + Determine whether the given UTC time (in milliseconds) is 'included' by the Calendar. -

+ Note that this Calendar is only has full-day precision. -

+
- + Determine the next UTC time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStampUtc is included. Return 0 if all days are excluded. -

+ Note that this Calendar is only has full-day precision. -

+
@@ -6093,23 +5989,24 @@ For example, you could use this calendar to exclude all but business hours (8AM - 5PM) every day using the expression "* * 0-7,18-23 ? * *". -

+ It is important to remember that the cron expression here describes a set of times to be excluded from firing. Whereas the cron expression in CronTrigger describes a set of times that can - be included for firing. Thus, if a has a + be included for firing. Thus, if a has a given cron expression and is associated with a with the same expression, the calendar will exclude all the times the trigger includes, and they will cancel each other out. -

+
Aaron Craven + Marko Lahma (.NET)
Initializes a new instance of the class. - a String representation of the desired cron expression + a string representation of the desired cron expression @@ -6121,7 +6018,7 @@ see BaseCalendar for more information on base calendar functionality - a String representation of the desired cron expression + a string representation of the desired cron expression @@ -6133,10 +6030,17 @@ see BaseCalendar for more information on base calendar functionality - a String representation of the desired cron expression + a string representation of the desired cron expression - + + + Serialization constructor. + + + + + Determine whether the given time is 'included' by the Calendar. @@ -6144,7 +6048,7 @@ the time to test a boolean indicating whether the specified time is 'included' by the CronCalendar - + Determine the next time that is 'included' by the Calendar after the given time. Return the original value if timeStamp is @@ -6153,6 +6057,12 @@ + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + Returns a that represents the current . @@ -6188,15 +6098,16 @@ * fire. If is , the time range is inverted: that is, all times outside the defined time range are excluded. -

+ Note when using , it behaves on the same principals as, for example, WeeklyCalendar defines a set of days that are excluded every week. Likewise, defines a set of times that are excluded every day. -

+ Mike Funk Aaron Craven + Marko Lahma (.NET) @@ -6419,7 +6330,14 @@ The range starting time in millis. The range ending time in millis. - + + + Serialization constructor. + + + + + Determine whether the given time is 'included' by the Calendar. @@ -6427,7 +6345,7 @@ - + Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is @@ -6435,9 +6353,9 @@ - + - + Returns the start time of the time range of the day specified in . @@ -6447,7 +6365,7 @@ time range for the specified date. - + Returns the end time of the time range of the day specified in @@ -6503,14 +6421,14 @@ The range starting time. The range ending time. - + Gets the start of day, practically zeroes time part. The time. - + Gets the end of day, pratically sets time parts to maximum allowed values. @@ -6545,6 +6463,7 @@ Sharada Jambula Juergen Donnerstag + Marko Lahma (.NET) @@ -6557,23 +6476,36 @@ The base calendar. - + + + Serialization constructor. + + + + + Determine whether the given time (in milliseconds) is 'included' by the Calendar. -

+ Note that this Calendar is only has full-day precision. -

+
- + Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. -

+ Note that this Calendar is only has full-day precision. -

+ +
+
+ + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. @@ -6589,7 +6521,7 @@ - Returns a of Dates representing the excluded + Returns a of Dates representing the excluded days. Only the month, day and year of the returned dates are significant. @@ -6603,6 +6535,7 @@ Juergen Donnerstag + Marko Lahma (.NET) @@ -6615,6 +6548,13 @@ The base calendar. + + + Serialization constructor. + + + + Initialize internal variables @@ -6638,24 +6578,30 @@ boolean - + Determine whether the given time (in milliseconds) is 'included' by the Calendar. -

+ Note that this Calendar is only has full-day precision. -

+
- + Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return DateTime.MinValue if all days are excluded. -

+ Note that this Calendar is only has full-day precision. -

+ +
+
+ + + Creates a new object that is a copy of the current instance. + A new object that is a copy of this instance. @@ -6673,6 +6619,7 @@ Juergen Donnerstag + Marko Lahma (.NET) @@ -6685,6 +6632,13 @@ The base calendar. + + + Serialization constructor. + + + + Initialize internal variables @@ -6699,8 +6653,7 @@ Redefine a certain day of the week to be excluded (true) or included - (false). Use java.util.Calendar's constants like MONDAY to determine the - wday. + (false). Use enum to determine the weekday. @@ -6708,23 +6661,23 @@ Check if all week ays are excluded. That is no day is included. - + Determine whether the given time (in milliseconds) is 'included' by the Calendar. -

+ Note that this Calendar is only has full-day precision. -

+
- + Determine the next time (in milliseconds) that is 'included' by the Calendar after the given time. Return the original value if timeStamp is included. Return DateTime.MinValue if all days are excluded. -

+ Note that this Calendar is only has full-day precision. -

+
@@ -6735,1398 +6688,4574 @@ index. A value of true is regarded as: exclude it.
- + - A singleton implementation of . + Matches using an AND operator on two Matcher operands. - - Here are some examples of using this class: -

- To create a scheduler that does not write anything to the database (is not - persistent), you can call : -

-
-            DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads 
-            // don't forget to start the scheduler: 
-            DirectSchedulerFactory.Instance.GetScheduler().Start();
-            
-

- Several create methods are provided for convenience. All create methods - eventually end up calling the create method with all the parameters: -

-
-            public void createScheduler(String schedulerName, string schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, string rmiRegistryHost, int rmiRegistryPort)
-            
-

- Here is an example of using this method: -

-
-            // create the thread pool 
-            SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, Thread.NORM_PRIORITY); 
-            threadPool.Initialize(); 
-            // create the job store 
-            JobStore jobStore = new RAMJobStore(); 
-            jobStore.Initialize();
-            
-            DirectSchedulerFactory.Instance.CreateScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore, "localhost", 1099); 
-            // don't forget to start the scheduler: 
-            DirectSchedulerFactory.Instance.GetScheduler("My Quartz Scheduler", "My Instance").start();
-            
-
> - Mohammad Rezaei James House - - + Marko Lahma (.NET)
- + - Provides a mechanism for obtaining client-usable handles to - instances. + Matchers can be used in various API methods to + select the entities that should be operated upon. - - James House + - + - Returns a client-usable handle to a . + Create an AndMatcher that depends upon the result of both of the given matchers. + + + + - + - Returns a handle to the Scheduler with the given name, if it exists. + Matches on the complete key being equal (both name and group). + + + jhouse - + - Returns handles to all known Schedulers (made by any SchedulerFactory - within this app domain.). + Create an EverythingMatcher that matches all jobs. + - + - Initializes a new instance of the class. + Create an EverythingMatcher that matches all triggers. + - + - Creates an in memory job store () - The thread priority is set to Thread.NORM_PRIORITY + Matches on group (ignores name) property of Keys. - The number of threads in the thread pool + James House + Marko Lahma (.NET) - + - Creates a proxy to a remote scheduler. This scheduler can be retrieved - via . + An abstract base class for some types of matchers. - SchedulerException + James House + Marko Lahma (.NET) - + - Same as , - with the addition of specifying the scheduler name and instance ID. This - scheduler can only be retrieved via . + Create a GroupMatcher that matches groups equaling the given string. - The name for the scheduler. - The instance ID for the scheduler. - - SchedulerException + + - - - Creates a scheduler using the specified thread pool and job store. This - scheduler can be retrieved via DirectSchedulerFactory#GetScheduler() - - - The thread pool for executing jobs - - - The type of job store - - SchedulerException - if initialization failed + + + Create a GroupMatcher that matches groups starting with the given string. + + - + - Same as DirectSchedulerFactory#createScheduler(ThreadPool threadPool, JobStore jobStore), - with the addition of specifying the scheduler name and instance ID. This - scheduler can only be retrieved via DirectSchedulerFactory#getScheduler(String) + Create a GroupMatcher that matches groups ending with the given string. - The name for the scheduler. - The instance ID for the scheduler. - The thread pool for executing jobs - The type of job store + + - + - Creates a scheduler using the specified thread pool and job store and - binds it to RMI. + Create a GroupMatcher that matches groups containing the given string. - The name for the scheduler. - The instance ID for the scheduler. - The thread pool for executing jobs - The type of job store - The idle wait time. You can specify "-1" for - the default value, which is currently 30000 ms. - The db failure retry interval. + + - + - Creates a scheduler using the specified thread pool and job store and - binds it to RMI. + Matches on the complete key being equal (both name and group). - The name for the scheduler. - The instance ID for the scheduler. - The thread pool for executing jobs - The type of job store - - The idle wait time. You can specify TimeSpan.Zero for - the default value, which is currently 30000 ms. - The db failure retry interval. + James House + Marko Lahma (.NET) - + - Returns a handle to the Scheduler produced by this factory. -

- you must call createRemoteScheduler or createScheduler methods before - calling getScheduler() -

+ Create a KeyMatcher that matches Keys that equal the given key.
+ + - SchedulerException
- + - Returns a handle to the Scheduler with the given name, if it exists. + Matches on name (ignores group) property of Keys. + James House + Marko Lahma (.NET) - + - Gets the log. + Create a NameMatcher that matches names equaling the given string. - The log. + + - + - Gets the instance. + Create a NameMatcher that matches names starting with the given string. - The instance. + + - -

- Returns a handle to all known Schedulers (made by any - StdSchedulerFactory instance.). -

+ + + Create a NameMatcher that matches names ending with the given string. + + - + - An implementation of the interface that remotely - proxies all method calls to the equivalent call on a given - instance, via remoting or similar technology. + Create a NameMatcher that matches names containing the given string. - - - - James House + + - + - This is the main interface of a Quartz Scheduler. + Matches using an NOT operator on another Matcher. - - - A maintains a registry of - s and s. Once - registered, the is responsible for executing - s when their associated s - fire (when their scheduled time arrives). - - - instances are produced by a - . A scheduler that has already been - created/initialized can be found and used through the same factory that - produced it. After a has been created, it is in - "stand-by" mode, and must have its method - called before it will fire any s. - - - s are to be created by the 'client program', by - defining a class that implements the interface. - objects are then created (also by the client) to - define a individual instances of the . - instances can then be registered with the - via the %IScheduler.ScheduleJob(JobDetail, - Trigger)% or %IScheduler.AddJob(JobDetail, bool)% method. - - - s can then be defined to fire individual - instances based on given schedules. - s are most useful for one-time firings, or - firing at an exact moment in time, with N repeats with a given delay between - them. s allow scheduling based on time of day, - day of week, day of month, and month of year. - - - s and s have a name and - group associated with them, which should uniquely identify them within a single - . The 'group' feature may be useful for creating - logical groupings or categorizations of s and - s. If you don't have need for assigning a group to a - given s of s, then you can use - the constant defined on - this interface. - - - Stored s can also be 'manually' triggered through the - use of the %IScheduler.TriggerJob(string, string)% function. - - - Client programs may also be interested in the 'listener' interfaces that are - available from Quartz. The interface provides - notifications of executions. The - interface provides notifications of - firings. The - interface provides notifications of events and - errors. - - - The setup/configuration of a instance is very - customizable. Please consult the documentation distributed with Quartz. - - - - - - - - + James House + Marko Lahma (.NET) - + - returns true if the given JobGroup - is paused + Create a NotMatcher that reverses the result of the given matcher. - + + - + - returns true if the given TriggerGroup - is paused + Matches using an OR operator on two Matcher operands. - + James House + Marko Lahma (.NET) + + + + Create an OrMatcher that depends upon the result of at least one of the given matchers. + + + + - + - Get a object describiing the settings - and capabilities of the scheduler instance. + Operators available for comparing string values. - - Note that the data returned is an 'instantaneous' snap-shot, and that as - soon as it's returned, the meta data values may be different. - - + - Return a list of objects that - represent all currently executing Jobs in this Scheduler instance. + The base abstract class to be extended by all triggers. -

- This method is not cluster aware. That is, it will only return Jobs - currently executing in this Scheduler instance, not across the entire - cluster. -

-

- Note that the list returned is an 'instantaneous' snap-shot, and that as - soon as it's returned, the true list of executing jobs may be different. - Also please read the doc associated with - - especially if you're using remoting. -

+ + s have a name and group associated with them, which + should uniquely identify them within a single . + + + + s are the 'mechanism' by which s + are scheduled. Many s can point to the same , + but a single can only point to one . + + + + Triggers can 'send' parameters/data to s by placing contents + into the on the . +
- -
- - - Get the names of all groups that are paused. - + + + + + + James House + Sharada Jambula + Marko Lahma (.NET) - + - Get the global that has - the given name. + Internal interface for managing triggers. This interface should not be used by the Quartz client. - Global job listener's name - - + - Get the global that - has the given name. + Should not be used by end users. - Global trigger listener's name - - + - Starts the 's threads that fire s. - When a scheduler is first created it is in "stand-by" mode, and will not - fire triggers. The scheduler can also be put into stand-by mode by - calling the method. + The base interface with properties common to all s - + use to instantiate an actual Trigger. - The misfire/recovery process will be started, if it is the initial call - to this method on this scheduler instance. + + s have a associated with them, which + should uniquely identify them within a single . + + + + s are the 'mechanism' by which s + are scheduled. Many s can point to the same , + but a single can only point to one . + + + + Triggers can 'send' parameters/data to s by placing contents + into the on the . + - - - + + + + + + + + James House + Sharada Jambula + Marko Lahma (.NET) - + - Calls after the indicated delay. - (This call does not block). This can be useful within applications that - have initializers that create the scheduler immediately, before the - resources needed by the executing jobs have been fully initialized. + Get a that is configured to produce a + schedule identical to this trigger's schedule. - - - + - - - Temporarily halts the 's firing of s. + + + Used by the to determine whether or not + it is possible for this to fire again. + + If the returned value is then the + may remove the from the . + + + + + Returns the next time at which the is scheduled to fire. If + the trigger will not fire again, will be returned. Note that + the time returned can possibly be in the past, if the time that was computed + for the trigger to next fire has already arrived, but the scheduler has not yet + been able to fire the trigger (which would likely be due to lack of resources + e.g. threads). + -

- When is called (to bring the scheduler out of - stand-by mode), trigger misfire instructions will NOT be applied - during the execution of the method - any misfires - will be detected immediately afterward (by the 's - normal process). -

-

- The scheduler is not destroyed, and can be re-started at any time. -

-
- - + The value returned is not guaranteed to be valid until after the + has been added to the scheduler. + +
- - - Halts the 's firing of s, - and cleans up all resources associated with the Scheduler. Equivalent to - . + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. - - The scheduler cannot be re-started. - - - + - Halts the 's firing of s, - and cleans up all resources associated with the Scheduler. + Returns the next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. - - The scheduler cannot be re-started. - - - if the scheduler will not allow this method - to return until all currently executing jobs have completed. - - - + - Add the given to the - Scheduler, and associate the given with - it. + Get or set the description given to the instance by + its creator (if any). - - If the given Trigger does not reference any , then it - will be set to reference the Job passed with it into this method. - - + - Schedule the given with the - identified by the 's settings. + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. - + - Remove the indicated from the scheduler. + Get or set the that is associated with the + . + + Changes made to this map during job execution are not re-persisted, and + in fact typically result in an illegal state. + - + - Remove (delete) the with the - given name, and store the new given one - which must be associated - with the same job (the new trigger must have the job name & group specified) - - however, the new trigger need not have the same name as the old trigger. + Returns the last UTC time at which the will fire, if + the Trigger will repeat indefinitely, null will be returned. + + Note that the return time *may* be in the past. + - - The name of the to be replaced. - - - The group name of the to be replaced. - - - The new to be stored. - - - if a with the given - name and group was not found and removed from the store, otherwise - the first fire time of the newly scheduled trigger. - - + - Add the given to the Scheduler - with no associated - . The will be 'dormant' until - it is scheduled with a , or - is called for it. + Get or set the instruction the should be given for + handling misfire situations for this - the + concrete type that you are using will have + defined a set of additional MISFIRE_INSTRUCTION_XXX + constants that may be set to this property. + + If not explicitly set, the default value is . + - - The must by definition be 'durable', if it is not, - SchedulerException will be thrown. - + + + - + - Delete the identified from the Scheduler - and any - associated s. + Gets and sets the date/time on which the trigger must stop firing. This + defines the final boundary for trigger firings 舒 the trigger will + not fire after to this date and time. If this value is null, no end time + boundary is assumed, and the trigger can continue indefinitely. - true if the Job was found and deleted. - + - Trigger the identified - (Execute it now) - the generated trigger will be non-volatile. + The time at which the trigger's scheduling should start. May or may not + be the first actual fire time of the trigger, depending upon the type of + trigger and the settings of the other properties of the trigger. However + the first actual first time will not be before this date. + + Setting a value in the past may cause a new trigger to compute a first + fire time that is in the past, which may cause an immediate misfire + of the trigger. + - + - Trigger the identified - (Execute it now) - the generated trigger will be volatile. + The priority of a acts as a tie breaker such that if + two s have the same scheduled fire time, then Quartz + will do its best to give the one with the higher priority first access + to a worker thread. + + If not explicitly set, the default value is 5. + + + - + - Trigger the identified - (Execute it now) - the generated trigger will be non-volatile. + Set a description for the instance - may be + useful for remembering/displaying the purpose of the trigger, though the + description has no meaning to Quartz. - the name of the Job to trigger - the group name of the Job to trigger - - the (possibly ) JobDataMap to be - associated with the trigger that fires the job immediately. - - + - Trigger the identified - (Execute it now) - the generated trigger will be volatile. + Associate the with the given name with this Trigger. - the name of the Job to trigger - the group name of the Job to trigger - - the (possibly ) JobDataMap to be - associated with the trigger that fires the job immediately. - - + - Pause the with the given - name - by pausing all of its current s. + Set the to be associated with the + . - + - Pause all of the s in the - given group - by pausing all of their s. + The priority of a acts as a tie breaker such that if + two s have the same scheduled fire time, then Quartz + will do its best to give the one with the higher priority first access + to a worker thread. - The Scheduler will "remember" that the group is paused, and impose the - pause on any new jobs that are added to the group while the group is - paused. + If not explicitly set, the default value is 5. - + - - - Pause the with the given name. + + + + The time at which the trigger's scheduling should start. May or may not + be the first actual fire time of the trigger, depending upon the type of + trigger and the settings of the other properties of the trigger. However + the first actual first time will not be before this date. + + + Setting a value in the past may cause a new trigger to compute a first + fire time that is in the past, which may cause an immediate misfire + of the trigger. + + ew DateTimeOffset StartTimeUtc { get; set; } - + - Pause all of the s in the given group. + + Set the time at which the should quit repeating - + regardless of any remaining repeats (based on the trigger's particular + repeat settings). + - The Scheduler will "remember" that the group is paused, and impose the - pause on any new triggers that are added to the group while the group is - paused. - - + - Resume (un-pause) the with - the given name. + Set the instruction the should be given for + handling misfire situations for this - the + concrete type that you are using will have + defined a set of additional MisfireInstruction.XXX + constants that may be passed to this method. - If any of the 's s missed one - or more fire-times, then the 's misfire - instruction will be applied. + If not explicitly set, the default value is . + + + - + - Resume (un-pause) all of the s - in the given group. + This method should not be used by the Quartz client. - If any of the s had s that - missed one or more fire-times, then the 's - misfire instruction will be applied. + Called when the has decided to 'fire' + the trigger (Execute the associated ), in order to + give the a chance to update itself for its next + triggering (if any). - + - + - Resume (un-pause) the with the given - name. + This method should not be used by the Quartz client. - If the missed one or more fire-times, then the - 's misfire instruction will be applied. + + Called by the scheduler at the time a is first + added to the scheduler, in order to have the + compute its first fire time, based on any associated calendar. + + + + After this method has been called, + should return a valid answer. + + + The first time at which the will be fired + by the scheduler, which is also the same value + will return (until after the first firing of the ). + - + - Resume (un-pause) all of the s in the - given group. + This method should not be used by the Quartz client. - If any missed one or more fire-times, then the - 's misfire instruction will be applied. + Called after the has executed the + associated with the + in order to get the final instruction code from the trigger. - + + is the that was used by the + 's method. + is the thrown by the + , if any (may be null). + + + One of the members. + + + + + + - + + + This method should not be used by the Quartz client. + + To be implemented by the concrete classes that extend this class. + + + The implementation should update the 's state + based on the MISFIRE_INSTRUCTION_XXX that was selected when the + was created. + + + + + + This method should not be used by the Quartz client. + + The implementation should update the 's state + based on the given new version of the associated + (the state should be updated so that it's next fire time is appropriate + given the Calendar's new settings). + + + + + + - Pause all triggers - similar to calling - on every group, however, after using this method - must be called to clear the scheduler's state of 'remembering' that all - new triggers will be paused as they are added. + Validates whether the properties of the are + valid for submission into a . - - When is called (to un-pause), trigger misfire - instructions WILL be applied. - - - - - + - Resume (un-pause) all triggers - similar to calling - on every group. + This method should not be used by the Quartz client. - If any missed one or more fire-times, then the - 's misfire instruction will be applied. + Usable by + implementations, in order to facilitate 'recognizing' instances of fired + s as their jobs complete execution. - - + - Get the names of all the s in the given group. + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. - + - Get all s that are associated with the - identified . + Create a with no specified name, group, or . + + Note that the , and + the and properties + must be set before the can be placed into a + . + - + - Get the names of all the s in the given - group. + Create a with the given name, and default group. + + Note that the and + properties must be set before the + can be placed into a . + + The name. - + - Get the for the - instance with the given name and group. + Create a with the given name, and group. + + Note that the and + properties must be set before the + can be placed into a . + + The name. + if , Scheduler.DefaultGroup will be used. - + - Get the instance with the given name and - group. + Create a with the given name, and group. - - + The name. + if , Scheduler.DefaultGroup will be used. + Name of the job. + The job group. + ArgumentException + if name is null or empty, or the group is an empty string. + + + - Get the current state of the identified . + This method should not be used by the Quartz client. - - - - - - + + Called when the has decided to 'fire' + the trigger (Execute the associated ), in order to + give the a chance to update itself for its next + triggering (if any). + + - + - Add (register) the given to the Scheduler. + This method should not be used by the Quartz client. - Name of the calendar. - The calendar. - if set to true [replace]. - whether or not to update existing triggers that - referenced the already existing calendar so that they are 'correct' - based on the new trigger. + + + Called by the scheduler at the time a is first + added to the scheduler, in order to have the + compute its first fire time, based on any associated calendar. + + + + After this method has been called, + should return a valid answer. + + + + The first time at which the will be fired + by the scheduler, which is also the same value + will return (until after the first firing of the ). + - + - Delete the identified from the Scheduler. + This method should not be used by the Quartz client. - Name of the calendar. + + Called after the has executed the + associated with the + in order to get the final instruction code from the trigger. + + + is the that was used by the + 's method. + is the thrown by the + , if any (may be null). + - true if the Calendar was found and deleted. + One of the members. + + - - - Get the instance with the given name. + + + Used by the to determine whether or not + it is possible for this to fire again. + + If the returned value is then the + may remove the from the . + - + + + Returns the next time at which the is scheduled to fire. If + the trigger will not fire again, will be returned. Note that + the time returned can possibly be in the past, if the time that was computed + for the trigger to next fire has already arrived, but the scheduler has not yet + been able to fire the trigger (which would likely be due to lack of resources + e.g. threads). + + + The value returned is not guaranteed to be valid until after the + has been added to the scheduler. + + + + - Get the names of all registered . + Returns the next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. - An array of calendar names. - + - Request the interruption, within this Scheduler instance, of all - currently executing instances of the identified , which - must be an implementor of the interface. + Validates the misfire instruction. - -

- If more than one instance of the identified job is currently executing, - the method will be called on - each instance. However, there is a limitation that in the case that - on one instances throws an exception, all - remaining instances (that have not yet been interrupted) will not have - their method called. -

- -

- If you wish to interrupt a specific instance of a job (when more than - one is executing) you can do so by calling - to obtain a handle - to the job instance, and then invoke on it - yourself. -

-

- This method is not cluster aware. That is, it will only interrupt - instances of the identified InterruptableJob currently executing in this - Scheduler instance, not across the entire cluster. -

-
- - - - true is at least one instance of the identified job was found and interrupted. - - - + The misfire instruction. +
- - - Add the given to the 's - global list. + + + This method should not be used by the Quartz client. + + To be implemented by the concrete classes that extend this class. + + + The implementation should update the 's state + based on the MISFIRE_INSTRUCTION_XXX that was selected when the + was created. + - - Listeners in the 'global' list receive notification of execution events - for ALL s. - - + - Add the given to the 's - list, of registered s. + This method should not be used by the Quartz client. + + The implementation should update the 's state + based on the given new version of the associated + (the state should be updated so that it's next fire time is appropriate + given the Calendar's new settings). + + + - + - Remove the given from the 's - list of global listeners. + Validates whether the properties of the are + valid for submission into a . - - true if the identifed listener was found in the list, and removed. - - + - Remove the identifed from the 's - list of global listeners. + Return a simple string representation of this object. - Global job listener's name - true if the identifed listener was found in the list, and removed - + - Remove the identifed from the 's - list of registered listeners. + Compare the next fire time of this to that of + another by comparing their keys, or in other words, sorts them + according to the natural (i.e. alphabetical) order of their keys. - - true if the identifed listener was found in the list, and removed. - + + - + - Get the non-global that has - the given name. + Determines whether the specified is equal to the current . + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + - + - Add the given to the 's - global list. + Trigger equality is based upon the equality of the TriggerKey. - - Listeners in the 'global' list receive notification of execution events - for ALL s. - + + true if the key of this Trigger equals that of the given Trigger - + - Add the given to the 's - list, of registered s. + Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. + + A hash code for the current . + - + - Remove the given from the 's - list of global listeners. + Creates a new object that is a copy of the current instance. - - true if the identifed listener was found in the list, and removed. + + A new object that is a copy of this instance. - + - Remove the identifed from the 's - list of global listeners. + Get or sets the name of this . - The name. - true if the identifed listener was found in the list, and removed. + If name is null or empty. - + - Remove the identifed from the - 's list of registered listeners. + Get the group of this . If , Scheduler.DefaultGroup will be used. - - true if the identifed listener was found in the list, and removed. - + + if group is an empty string. + - + - Get the non-global that - has the given name. + Get or set the name of the associated . + + + if jobName is null or empty. + + + + + Gets or sets the name of the associated 's + group. If set with , Scheduler.DefaultGroup will be used. + ArgumentException + if group is an empty string. + - + - Register the given with the + Returns the 'full name' of the in the format + "group.name". - - - Remove the given from the - . + + + Gets the key. - true if the identifed listener was found in the list, and - removed. - + The key. - - - Returns the name of the . + + + Returns the 'full name' of the that the + points to, in the format "group.name". - + - Returns the instance Id of the . + Get or set the description given to the instance by + its creator (if any). - + - Returns the of the . + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. - + - Reports whether the is in stand-by mode. + Get or set the that is associated with the + . + + Changes made to this map during job execution are not re-persisted, and + in fact typically result in an illegal state. + - - - + - Reports whether the has been Shutdown. + Returns the last UTC time at which the will fire, if + the Trigger will repeat indefinitely, null will be returned. + + Note that the return time *may* be in the past. + - + - Set the that will be responsible for producing - instances of classes. + Get or set the instruction the should be given for + handling misfire situations for this - the + concrete type that you are using will have + defined a set of additional MISFIRE_INSTRUCTION_XXX + constants that may be passed to this method. + + If not explicitly set, the default value is . + + + + + + + + + + This method should not be used by the Quartz client. - JobFactories may be of use to those wishing to have their application - produce instances via some special mechanism, such as to - give the opertunity for dependency injection. + Usable by + implementations, in order to facilitate 'recognizing' instances of fired + s as their jobs complete execution. - - + - Get the names of all known groups. + Gets and sets the date/time on which the trigger must stop firing. This + defines the final boundary for trigger firings 舒 the trigger will + not fire after to this date and time. If this value is null, no end time + boundary is assumed, and the trigger can continue indefinitely. - + - Get the names of all known groups. + The time at which the trigger's scheduling should start. May or may not + be the first actual fire time of the trigger, depending upon the type of + trigger and the settings of the other properties of the trigger. However + the first actual first time will not be before this date. + + Setting a value in the past may cause a new trigger to compute a first + fire time that is in the past, which may cause an immediate misfire + of the trigger. + - + - Get the names of all registered s. + Tells whether this Trigger instance can handle events + in millisecond precision. - + - Get a List containing all of the s in - the 'sglobal list. + The priority of a acts as a tie breaker such that if + two s have the same scheduled fire time, then Quartz + will do its best to give the one with the higher priority first access + to a worker thread. + + If not explicitly set, the default value is 5. + + + - + - Get a Set containing the names of all the non-global - s registered with the . + Gets a value indicating whether this instance has additional properties + that should be considered when for example saving to database. + + If trigger implementation has additional properties that need to be saved + with base properties you need to make your class override this property with value true. + Returning true will effectively mean that ADOJobStore needs to serialize + this trigger instance to make sure additional properties are also saved. + + + true if this instance has additional properties; otherwise, false. + - + - Get a List containing all of the - s in the 'sglobal list. - + A concrete that is used to fire a + based upon repeating calendar time intervals. + + + The trigger will fire every N (see ) units of calendar time + (see ) as specified in the trigger's definition. + This trigger can achieve schedules that are not possible with (e.g + because months are not a fixed number of seconds) or (e.g. because + "every 5 months" is not an even divisor of 12). + + If you use an interval unit of then care should be taken when setting + a value that is on a day near the end of the month. For example, + if you choose a start time that occurs on January 31st, and have a trigger with unit + and interval 1, then the next fire time will be February 28th, + and the next time after that will be March 28th - and essentially each subsequent firing will + occur on the 28th of the month, even if a 31st day exists. If you want a trigger that always + fires on the last day of the month - regardless of the number of days in the month, + you should use . + + + + + + + 2.0 + James House + Marko Lahma (.NET) - + - Get a Set containing the names of all the non-global - s registered with the . - + A that is used to fire a + based upon repeating calendar time intervals. + - + - Get a List containing all of the - s registered with the . + Get or set the interval unit - the time unit on with the interval applies. - + - Whether the scheduler has been started. + Get the the time interval that will be added to the 's + fire time (in the set repeat interval unit) in order to calculate the time of the + next trigger repeat. - - Note: This only reflects whether has ever - been called on this Scheduler, so it will return even - if the is currently in standby mode or has been - since shutdown. - - - - - + - Construct a instance to proxy the given - RemoteableQuartzScheduler instance, and with the given - . + Get the number of times the has already fired. - + - returns true if the given JobGroup - is paused - - - - - - - returns true if the given TriggerGroup - is paused - - - - - - - Get a object describiing the settings - and capabilities of the scheduler instance. -

- Note that the data returned is an 'instantaneous' snap-shot, and that as - soon as it's returned, the meta data values may be different. -

-
- -
- - - Calls the equivalent method on the 'proxied' . - - - - - Get the global that has - the given name. - - - - - - - Get the global that - has the given name. - - - - - - - Get the names of all groups that are paused. - - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Gets the time zone within which time calculations related to this trigger will be performed. + + If null, the system default TimeZone will be used. + - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - + If intervals are a day or greater, this property (set to true) will + cause the firing of the trigger to always occur at the same time of day, + (the time of day of the startTime) regardless of daylight saving time + transitions. Default value is false. +
+ + + For example, without the property set, your trigger may have a start + time of 9:00 am on March 1st, and a repeat interval of 2 days. But + after the daylight saving transition occurs, the trigger may start + firing at 8:00 am every other day. + + + If however, the time of day does not exist on a given day to fire + (e.g. 2:00 am in the United States on the days of daylight saving + transition), the trigger will go ahead and fire one hour off on + that day, and then resume the normal hour on other days. If + you wish for the trigger to never fire at the "wrong" hour, then + you should set the property skipDayIfHourDoesNotExist. + + + + +
- + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + If intervals are a day or greater, and + preserveHourOfDayAcrossDaylightSavings property is set to true, and the + hour of the day does not exist on a given day for which the trigger + would fire, the day will be skipped and the trigger advanced a second + interval if this property is set to true. Defaults to false. + + CAUTION! If you enable this property, and your hour of day happens + to be that of daylight savings transition (e.g. 2:00 am in the United + States) and the trigger's interval would have had the trigger fire on + that day, then you may actually completely miss a firing on the day of + transition if that hour of day does not exist on that day! In such a + case the next fire time of the trigger will be computed as double (if + the interval is 2 days, then a span of 4 days between firings will + occur). + + - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Create a with no settings. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Create a that will occur immediately, and + repeat at the the given interval. + Name for the trigger instance. + The repeat interval unit (minutes, days, months, etc). + The number of milliseconds to pause between the repeat firing. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Create a that will occur immediately, and + repeat at the the given interval + Name for the trigger instance. + Group for the trigger instance. + The repeat interval unit (minutes, days, months, etc). + The number of milliseconds to pause between the repeat firing. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Create a that will occur at the given time, + and repeat at the the given interval until the given end time. + Name for the trigger instance. + A set to the time for the to fire. + A set to the time for the to quit repeat firing. + The repeat interval unit (minutes, days, months, etc). + The number of milliseconds to pause between the repeat firing. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Create a that will occur at the given time, + and repeat at the the given interval until the given end time. + Name for the trigger instance. + Group for the trigger instance. + A set to the time for the to fire. + A set to the time for the to quit repeat firing. + The repeat interval unit (minutes, days, months, etc). + The number of milliseconds to pause between the repeat firing. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Create a that will occur at the given time, + and repeat at the the given interval until the given end time. + Name for the trigger instance. + Group for the trigger instance. + Name of the associated job. + Group of the associated job. + A set to the time for the to fire. + A set to the time for the to quit repeat firing. + The repeat interval unit (minutes, days, months, etc). + The number of milliseconds to pause between the repeat firing. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Validates the misfire instruction. + The misfire instruction. + - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Updates the 's state based on the + MisfireInstruction.XXX that was selected when the + was created. + + If the misfire instruction is set to , + then the following scheme will be used: +
    +
  • The instruction will be interpreted as
  • +
+
- + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + This method should not be used by the Quartz client. + + Called when the has decided to 'fire' + the trigger (Execute the associated ), in order to + give the a chance to update itself for its next + triggering (if any). + + - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + This method should not be used by the Quartz client. + + The implementation should update the 's state + based on the given new version of the associated + (the state should be updated so that it's next fire time is appropriate + given the Calendar's new settings). + + + - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + This method should not be used by the Quartz client. + + + Called by the scheduler at the time a is first + added to the scheduler, in order to have the + compute its first fire time, based on any associated calendar. + + + + After this method has been called, + should return a valid answer. + + + + The first time at which the will be fired + by the scheduler, which is also the same value + will return (until after the first firing of the ). + - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - + + + Returns the next time at which the is scheduled to fire. If + the trigger will not fire again, will be returned. Note that + the time returned can possibly be in the past, if the time that was computed + for the trigger to next fire has already arrived, but the scheduler has not yet + been able to fire the trigger (which would likely be due to lack of resources + e.g. threads). + + + The value returned is not guaranteed to be valid until after the + has been added to the scheduler. + + - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Returns the next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. - + - Get the names of all registered . + Determines whether or not the will occur + again. - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Remove the identifed from the 's - list of global listeners. - - - - true if the identifed listener was found in the list, and removed - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' . + Validates whether the properties of the are + valid for submission into a . - + - Calls the equivalent method on the 'proxied' . + Get a that is configured to produce a + schedule identical to this trigger's schedule. + + + - + - Calls the equivalent method on the 'proxied' . + Get the time at which the should occur. - + - Calls the equivalent method on the 'proxied' . + Tells whether this Trigger instance can handle events + in millisecond precision. - + - Remove the identifed from the 's - list of global listeners. + Get the time at which the should quit + repeating. - The name. - - true if the identifed listener was found in the list, and removed. - - + - Calls the equivalent method on the 'proxied' . + Get or set the interval unit - the time unit on with the interval applies. - + - Calls the equivalent method on the 'proxied' . + Get the the time interval that will be added to the 's + fire time (in the set repeat interval unit) in order to calculate the time of the + next trigger repeat. - + - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - + If intervals are a day or greater, this property (set to true) will + cause the firing of the trigger to always occur at the same time of day, + (the time of day of the startTime) regardless of daylight saving time + transitions. Default value is false. +
+ + + For example, without the property set, your trigger may have a start + time of 9:00 am on March 1st, and a repeat interval of 2 days. But + after the daylight saving transition occurs, the trigger may start + firing at 8:00 am every other day. + + + If however, the time of day does not exist on a given day to fire + (e.g. 2:00 am in the United States on the days of daylight saving + transition), the trigger will go ahead and fire one hour off on + that day, and then resume the normal hour on other days. If + you wish for the trigger to never fire at the "wrong" hour, then + you should set the property skipDayIfHourDoesNotExist. + + + + +
- + - Calls the equivalent method on the 'proxied' . + If intervals are a day or greater, and + preserveHourOfDayAcrossDaylightSavings property is set to true, and the + hour of the day does not exist on a given day for which the trigger + would fire, the day will be skipped and the trigger advanced a second + interval if this property is set to true. Defaults to false. + + CAUTION! If you enable this property, and your hour of day happens + to be that of daylight savings transition (e.g. 2:00 am in the United + States) and the trigger's interval would have had the trigger fire on + that day, then you may actually completely miss a firing on the day of + transition if that hour of day does not exist on that day! In such a + case the next fire time of the trigger will be computed as double (if + the interval is 2 days, then a span of 4 days between firings will + occur). + + - + - Returns the name of the . + Get the number of times the has already fired. - + - Returns the instance Id of the . + Returns the final time at which the will + fire, if there is no end time set, null will be returned. + + Note that the return time may be in the past. - + - Gets or sets the remote scheduler address. - - The remote scheduler address. - - - - Returns the of the . + A concrete that is used to fire a + at given moments in time, defined with Unix 'cron-like' definitions. - - - + + + For those unfamiliar with "cron", this means being able to create a firing + schedule such as: "At 8:00am every Monday through Friday" or "At 1:30am + every last Friday of the month". + + + + The format of a "Cron-Expression" string is documented on the + class. + + + + Here are some full examples:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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" /> +
+
+ + + Pay attention to the effects of '?' and '*' in the day-of-week and + day-of-month fields! + + + + NOTES: +
    +
  • Support for specifying both a day-of-week and a day-of-month value is + not complete (you'll need to use the '?' character in on of these fields). +
  • +
  • Be careful when setting fire times between mid-night and 1:00 AM - + "daylight savings" can cause a skip or a repeat depending on whether the + time moves back or jumps forward.
  • +
+
+
+ + + Sharada Jambula + James House + Contributions from Mads Henderson + Marko Lahma (.NET) + + + + The public interface for inspecting settings specific to a CronTrigger, + which is used to fire a + at given moments in time, defined with Unix 'cron-like' schedule definitions. + + + + For those unfamiliar with "cron", this means being able to create a firing + schedule such as: "At 8:00am every Monday through Friday" or "At 1:30am + every last Friday of the month". + + + + The format of a "Cron-Expression" string is documented on the + class. + + + + Here are some full examples:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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" /> +
+
+ + + Pay attention to the effects of '?' and '*' in the day-of-week and + day-of-month fields! + + + + NOTES: +
    +
  • Support for specifying both a day-of-week and a day-of-month value is + not complete (you'll need to use the '?' character in on of these fields). +
  • +
  • Be careful when setting fire times between mid-night and 1:00 AM - + "daylight savings" can cause a skip or a repeat depending on whether the + time moves back or jumps forward.
  • +
+
+
+ + + Sharada Jambula + James House + Contributions from Mads Henderson + Marko Lahma (.NET) +
+ + + Gets the expression summary. + + + + + + Gets or sets the cron expression string. + + The cron expression string. + + + + Sets the time zone for which the of this + will be resolved. + + + If is set after this + property, the TimeZone setting on the CronExpression will "win". However + if is set after this property, the + time zone applied by this method will remain in effect, since the + string cron expression does not carry a time zone! + + The time zone. + + + + Create a with no settings. + + + The start-time will also be set to the current time, and the time zone + will be set the the system's default time zone. + + + + + Create a with the given name and default group. + + + The start-time will also be set to the current time, and the time zone + will be set the the system's default time zone. + + The name of the + + + + Create a with the given name and group. + + + The start-time will also be set to the current time, and the time zone + will be set the the system's default time zone. + + The name of the + The group of the + + + + Create a with the given name, group and + expression. + + + The start-time will also be set to the current time, and the time zone + will be set the the system's default time zone. + + The name of the + The group of the + A cron expression dictating the firing sequence of the + + + + Create a with the given name and group, and + associated with the identified . + + + The start-time will also be set to the current time, and the time zone + will be set the the system's default time zone. + + The name of the . + The group of the + name of the executed on firetime + Group of the executed on firetime + + + + Create a with the given name and group, + associated with the identified , + and with the given "cron" expression. + + + The start-time will also be set to the current time, and the time zone + will be set the the system's default time zone. + + The name of the + The group of the + name of the executed on firetime + Group of the executed on firetime + A cron expression dictating the firing sequence of the + + + + Create a with the given name and group, + associated with the identified , + and with the given "cron" expression resolved with respect to the . + + The name of the + The group of the + name of the executed on firetime + Group of the executed on firetime + A cron expression dictating the firing sequence of the + + Specifies for which time zone the cronExpression should be interpreted, + i.e. the expression 0 0 10 * * ?, is resolved to 10:00 am in this time zone. + + + + + Create a that will occur at the given time, + until the given end time. + + If null, the start-time will also be set to the current time, the time + zone will be set the the system's default. + + + The name of the + The group of the + name of the executed on firetime + Group of the executed on firetime + A set to the earliest time for the to start firing. + A set to the time for the to quit repeat firing. + A cron expression dictating the firing sequence of the + + + + Create a with fire time dictated by the + resolved with respect to the specified + occurring from the until + the given . + + The name of the + The group of the + name of the executed on firetime + Group of the executed on firetime + A set to the earliest time for the to start firing. + A set to the time for the to quit repeat firing. + + + + Clones this instance. + + + + + + Returns the next time at which the is scheduled to fire. If + the trigger will not fire again, will be returned. Note that + the time returned can possibly be in the past, if the time that was computed + for the trigger to next fire has already arrived, but the scheduler has not yet + been able to fire the trigger (which would likely be due to lack of resources + e.g. threads). + + + The value returned is not guaranteed to be valid until after the + has been added to the scheduler. + + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + + Sets the next fire time. + + This method should not be invoked by client code. + + + The fire time. + + + + Sets the previous fire time. + + This method should not be invoked by client code. + + + The fire time. + + + + Returns the next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. + + + + + + + Used by the to determine whether or not + it is possible for this to fire again. + + If the returned value is then the + may remove the from the . + + + + + + + Validates the misfire instruction. + + The misfire instruction. + + + + + This method should not be used by the Quartz client. + + To be implemented by the concrete classes that extend this class. + + + The implementation should update the 's state + based on the MISFIRE_INSTRUCTION_XXX that was selected when the + was created. + + + + + + + + Determines whether the date and (optionally) time of the given Calendar + instance falls on a scheduled fire-time of this trigger. + + + + Equivalent to calling . + + + The date to compare. + + + + + Determines whether the date and (optionally) time of the given Calendar + instance falls on a scheduled fire-time of this trigger. + + Note that the value returned is NOT validated against the related + ICalendar (if any). + + + The date to compare + If set to true, the method will only determine if the + trigger will fire during the day represented by the given Calendar + (hours, minutes and seconds will be ignored). + + + + + Called when the has decided to 'fire' + the trigger (Execute the associated ), in order to + give the a chance to update itself for its next + triggering (if any). + + + + + + + Updates the trigger with new calendar. + + The calendar to update with. + The misfire threshold. + + + + Called by the scheduler at the time a is first + added to the scheduler, in order to have the + compute its first fire time, based on any associated calendar. + + After this method has been called, + should return a valid answer. + + + + + the first time at which the will be fired + by the scheduler, which is also the same value + will return (until after the first firing of the ). + + + + + Gets the expression summary. + + + + + + Gets the next time to fire after the given time. + + The time to compute from. + + + + + NOT YET IMPLEMENTED: Returns the time before the given time + that this will fire. + + The date. + + + + + Gets or sets the cron expression string. + + The cron expression string. + + + + Set the CronExpression to the given one. The TimeZone on the passed-in + CronExpression over-rides any that was already set on the Trigger. + + The cron expression. + + + + Returns the date/time on which the trigger may begin firing. This + defines the initial boundary for trigger firings the trigger + will not fire prior to this date and time. + + + + + + Get or sets the time at which the CronTrigger should quit + repeating - even if repeastCount isn't yet satisfied. + + + + + Sets the time zone for which the of this + will be resolved. + + + If is set after this + property, the TimeZone setting on the CronExpression will "win". However + if is set after this property, the + time zone applied by this method will remain in effect, since the + string cron expression does not carry a time zone! + + The time zone. + + + + Returns the last UTC time at which the will fire, if + the Trigger will repeat indefinitely, null will be returned. + + Note that the return time *may* be in the past. + + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + + A concrete implementation of DailyTimeIntervalTrigger that is used to fire a + based upon daily repeating time intervals. + + + + The trigger will fire every N ( ) seconds, minutes or hours + (see ) during a given time window on specified days of the week. + + + For example#1, a trigger can be set to fire every 72 minutes between 8:00 and 11:00 everyday. It's fire times would + be 8:00, 9:12, 10:24, then next day would repeat: 8:00, 9:12, 10:24 again. + + + For example#2, a trigger can be set to fire every 23 minutes between 9:20 and 16:47 Monday through Friday. + + + On each day, the starting fire time is reset to startTimeOfDay value, and then it will add repeatInterval value to it until + the endTimeOfDay is reached. If you set daysOfWeek values, then fire time will only occur during those week days period. Again, + remember this trigger will reset fire time each day with startTimeOfDay, regardless of your interval or endTimeOfDay! + + + The default values for fields if not set are: startTimeOfDay defaults to 00:00:00, the endTimeOfDay default to 23:59:59, + and daysOfWeek is default to every day. The startTime default to current time-stamp now, while endTime has not value. + + + If startTime is before startTimeOfDay, then startTimeOfDay will be used and startTime has no affect. Else if startTime is + after startTimeOfDay, then the first fire time for that day will be the next interval after the startTime. For example, if + you set startingTimeOfDay=9am, endingTimeOfDay=11am, interval=15 mins, and startTime=9:33am, then the next fire time will + be 9:45pm. Note also that if you do not set startTime value, the trigger builder will default to current time, and current time + maybe before or after the startTimeOfDay! So be aware how you set your startTime. + + + This trigger also supports "repeatCount" feature to end the trigger fire time after + a certain number of count is reached. Just as the SimpleTrigger, setting repeatCount=0 + means trigger will fire once only! Setting any positive count then the trigger will repeat + count + 1 times. Unlike SimpleTrigger, the default value of repeatCount of this trigger + is set to REPEAT_INDEFINITELY instead of 0 though. + + + + + 2.0 + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) + + + + A that is used to fire a + based upon daily repeating time intervals. + + + The trigger will fire every N (see ) seconds, minutes or hours + (see during a given time window on specified days of the week. + + For example#1, a trigger can be set to fire every 72 minutes between 8:00 and 11:00 everyday. It's fire times + be 8:00, 9:12, 10:24, then next day would repeat: 8:00, 9:12, 10:24 again. + + For example#2, a trigger can be set to fire every 23 minutes between 9:20 and 16:47 Monday through Friday. + + On each day, the starting fire time is reset to startTimeOfDay value, and then it will add repeatInterval value to it until + the endTimeOfDay is reached. If you set daysOfWeek values, then fire time will only occur during those week days period. + + The default values for fields if not set are: startTimeOfDay defaults to 00:00:00, the endTimeOfDay default to 23:59:59, + and daysOfWeek is default to every day. The startTime default to current time-stamp now, while endTime has not value. + + If startTime is before startTimeOfDay, then it has no affect. Else if startTime after startTimeOfDay, then the first fire time + for that day will be normal startTimeOfDay incremental values after startTime value. Same reversal logic is applied to endTime + with endTimeOfDay. + + + + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) + + + + + + + + + Get the the number of times for interval this trigger should repeat, + after which it will be automatically deleted. + + + + + Get the interval unit - the time unit on with the interval applies. + The only intervals that are valid for this type of trigger are , + , and + + + + + Get the the time interval that will be added to the 's + fire time (in the set repeat interval unit) in order to calculate the time of the + next trigger repeat. + + + + + The time of day to start firing at the given interval. + + + + + The time of day to complete firing at the given interval. + + + + + The days of the week upon which to fire. + + + A Set containing the integers representing the days of the week, per the values 0-6 as defined by + DayOfWees.Sunday - DayOfWeek.Saturday. + + + + + Get the number of times the has already fired. + + + + + Used to indicate the 'repeat count' of the trigger is indefinite. Or in + other words, the trigger should repeat continually until the trigger's + ending timestamp. + + + + + Create a with no settings. + + + + + Create a that will occur immediately, and + repeat at the the given interval. + + + The that the repeating should begin occurring. + The that the repeating should stop occurring. + The repeat interval unit. The only intervals that are valid for this type of trigger are + , , and . + + + + + Create a that will occur immediately, and + repeat at the the given interval. + + + + The that the repeating should begin occurring. + The that the repeating should stop occurring. + The repeat interval unit. The only intervals that are valid for this type of trigger are + , , and . + + + + + Create a that will occur at the given time, + and repeat at the the given interval until the given end time. + + + A set to the time for the to fire. + A set to the time for the to quit repeat firing. + The that the repeating should begin occurring. + The that the repeating should stop occurring. + The repeat interval unit. The only intervals that are valid for this type of trigger are + , , and . + The number of milliseconds to pause between the repeat firing. + + + + Create a that will occur at the given time, + and repeat at the the given interval until the given end time. + + + + A set to the time for the to fire. + A set to the time for the to quit repeat firing. + The that the repeating should begin occurring. + The that the repeating should stop occurring. + The repeat interval unit. The only intervals that are valid for this type of trigger are + , , and . + The number of milliseconds to pause between the repeat firing. + + + + Create a that will occur at the given time, + fire the identified job and repeat at the the given + interval until the given end time. + + + + + + A set to the time for the to fire. + A set to the time for the to quit repeat firing. + The that the repeating should begin occurring. + The that the repeating should stop occurring. + The repeat interval unit. The only intervals that are valid for this type of trigger are + , , and . + The number of milliseconds to pause between the repeat firing. + + + + Updates the 's state based on the + MisfireInstruction.XXX that was selected when the + was created. + + + If the misfire instruction is set to , + then the following scheme will be used: +
    +
  • The instruction will be interpreted as
  • +
+
+
+ + + Called when the scheduler has decided to 'fire' + the trigger (execute the associated job), in order to + give the trigger a chance to update itself for its next + triggering (if any). + + + + + + + + + + + + + + + This method should not be used by the Quartz client. + + + + Called by the scheduler at the time a is first + added to the scheduler, in order to have the + compute its first fire time, based on any associated calendar. + + + + After this method has been called, + should return a valid answer. + + + + The first time at which the will be fired + by the scheduler, which is also the same value + will return (until after the first firing of the ). + + + + + Returns the next time at which the is scheduled to fire. If + the trigger will not fire again, will be returned. Note that + the time returned can possibly be in the past, if the time that was computed + for the trigger to next fire has already arrived, but the scheduler has not yet + been able to fire the trigger (which would likely be due to lack of resources + e.g. threads). + + + The value returned is not guaranteed to be valid until after the + has been added to the scheduler. + + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + Set the next time at which the should fire. + + + This method should not be invoked by client code. + + + + + + Set the previous time at which the fired. + + + This method should not be invoked by client code. + + + + + + Returns the next time at which the will + fire, after the given time. If the trigger will not fire after the given + time, will be returned. + + + + + + + Given fireTime time, we need to advance/calculate and return a time of next available week day. + + given next fireTime. + flag to whether to advance day without check existing week day. This scenario + can happen when a caller determine fireTime has passed the endTimeOfDay that fireTime should move to next day anyway. + + a next day fireTime. + + + + Determines whether or not the will occur + again. + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + Get a that is configured to produce a + schedule identical to this trigger's schedule. + + + + + + + The time at which the should occur. + + + + + the time at which the should quit repeating. + + + + + + Get the the number of times for interval this trigger should repeat, + after which it will be automatically deleted. + + + + + the interval unit - the time unit on with the interval applies. + + + The repeat interval unit. The only intervals that are valid for this type of trigger are + , , and . + + + + + the the time interval that will be added to the 's + fire time (in the set repeat interval unit) in order to calculate the time of the + next trigger repeat. + + + + + the number of times the has already + fired. + + + + + Returns the final time at which the will + fire, if there is no end time set, null will be returned. + + Note that the return time may be in the past. + + + + + The days of the week upon which to fire. + + + A Set containing the integers representing the days of the week, per the values 0-6 as defined by + DayOfWees.Sunday - DayOfWeek.Saturday. + + + + + The time of day to start firing at the given interval. + + + + + The time of day to complete firing at the given interval. + + + + + This trigger has no additional properties besides what's defined in this class. + + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + A concrete that is used to fire a + at a given moment in time, and optionally repeated at a specified interval. + + + + James House + Contributions by Lieven Govaerts of Ebitec Nv, Belgium. + Marko Lahma (.NET) + + + + A that is used to fire a + at a given moment in time, and optionally repeated at a specified interval. + + + + James House + Contributions by Lieven Govaerts of Ebitec Nv, Belgium. + Marko Lahma (.NET) + + + + Get or set thhe number of times the should + repeat, after which it will be automatically deleted. + + + + + + Get or set the the time interval at which the should repeat. + + + + + Get or set the number of times the has already + fired. + + + + + Used to indicate the 'repeat count' of the trigger is indefinite. Or in + other words, the trigger should repeat continually until the trigger's + ending timestamp. + + + + + Create a with no settings. + + + + + Create a that will occur immediately, and + not repeat. + + + + + Create a that will occur immediately, and + not repeat. + + + + + Create a that will occur immediately, and + repeat at the the given interval the given number of times. + + + + + Create a that will occur immediately, and + repeat at the the given interval the given number of times. + + + + + Create a that will occur at the given time, + and not repeat. + + + + + Create a that will occur at the given time, + and not repeat. + + + + + Create a that will occur at the given time, + and repeat at the the given interval the given number of times, or until + the given end time. + + The name. + A UTC set to the time for the to fire. + A UTC set to the time for the + to quit repeat firing. + The number of times for the to repeat + firing, use for unlimited times. + The time span to pause between the repeat firing. + + + + Create a that will occur at the given time, + and repeat at the the given interval the given number of times, or until + the given end time. + + The name. + The group. + A UTC set to the time for the to fire. + A UTC set to the time for the + to quit repeat firing. + The number of times for the to repeat + firing, use for unlimited times. + The time span to pause between the repeat firing. + + + + Create a that will occur at the given time, + fire the identified and repeat at the the given + interval the given number of times, or until the given end time. + + The name. + The group. + Name of the job. + The job group. + A set to the time for the + to fire. + A set to the time for the + to quit repeat firing. + The number of times for the to repeat + firing, use RepeatIndefinitely for unlimited times. + The time span to pause between the repeat firing. + + + + Validates the misfire instruction. + + The misfire instruction. + + + + + Updates the 's state based on the + MisfireInstruction value that was selected when the + was created. + + + If MisfireSmartPolicyEnabled is set to true, + then the following scheme will be used:
+
    +
  • If the Repeat Count is 0, then the instruction will + be interpreted as .
  • +
  • If the Repeat Count is , then + the instruction will be interpreted as . + WARNING: using MisfirePolicy.SimpleTrigger.RescheduleNowWithRemainingRepeatCount + with a trigger that has a non-null end-time may cause the trigger to + never fire again if the end-time arrived during the misfire time span. +
  • +
  • If the Repeat Count is > 0, then the instruction + will be interpreted as . +
  • +
+
+
+ + + Called when the has decided to 'fire' + the trigger (Execute the associated ), in order to + give the a chance to update itself for its next + triggering (if any). + + + + + + Updates the instance with new calendar. + + The calendar. + The misfire threshold. + + + + Called by the scheduler at the time a is first + added to the scheduler, in order to have the + compute its first fire time, based on any associated calendar. + + After this method has been called, + should return a valid answer. + + + + The first time at which the will be fired + by the scheduler, which is also the same value + will return (until after the first firing of the ). + + + + + Returns the next time at which the will + fire. If the trigger will not fire again, will be + returned. The value returned is not guaranteed to be valid until after + the has been added to the scheduler. + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be + returned. + + + + + Returns the next UTC time at which the will + fire, after the given UTC time. If the trigger will not fire after the given + time, will be returned. + + + + + Returns the last UTC time at which the will + fire, before the given time. If the trigger will not fire before the + given time, will be returned. + + + + + Computes the number of times fired between the two UTC date times. + + The UTC start date and time. + The UTC end date and time. + + + + + Determines whether or not the will occur + again. + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + Get or set thhe number of times the should + repeat, after which it will be automatically deleted. + + + + + + Get or set the the time interval at which the should repeat. + + + + + Get or set the number of times the has already + fired. + + + + + Returns the final UTC time at which the will + fire, if repeatCount is RepeatIndefinitely, null will be returned. + + Note that the return time may be in the past. + + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + + Schedules work on a newly spawned thread. This is the default Quartz behavior. + + matt.accola + + + + Allows different strategies for scheduling threads. The + method is required to be called before the first call to + . The Thread containing the work to be performed is + passed to execute and the work is scheduled by the underlying implementation. + + matt.accola + + + + Submit a task for execution. + + Thread to execute. + + + + Initialize any state prior to calling . + + + + + A singleton implementation of . + + + Here are some examples of using this class: + + To create a scheduler that does not write anything to the database (is not + persistent), you can call : + + + DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads + // don't forget to start the scheduler: + DirectSchedulerFactory.Instance.GetScheduler().Start(); + + + Several create methods are provided for convenience. All create methods + eventually end up calling the create method with all the parameters: + + + public void CreateScheduler(string schedulerName, string schedulerInstanceId, IThreadPool threadPool, IJobStore jobStore) + + + Here is an example of using this method: + + + // 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(); + + > + Mohammad Rezaei + James House + Marko Lahma (.NET) + + + + + + Provides a mechanism for obtaining client-usable handles to + instances. + + + + James House + Marko Lahma (.NET) + + + + Returns a client-usable handle to a . + + + + + Returns a handle to the Scheduler with the given name, if it exists. + + + + + Returns handles to all known Schedulers (made by any SchedulerFactory + within this app domain.). + + + + + Initializes a new instance of the class. + + + + + Creates an in memory job store () + The thread priority is set to Thread.NORM_PRIORITY + + The number of threads in the thread pool + + + + Creates a proxy to a remote scheduler. This scheduler can be retrieved + via . + + SchedulerException + + + + Same as , + with the addition of specifying the scheduler name and instance ID. This + scheduler can only be retrieved via . + + The name for the scheduler. + The instance ID for the scheduler. + + SchedulerException + + + + Creates a scheduler using the specified thread pool and job store. This + scheduler can be retrieved via DirectSchedulerFactory#GetScheduler() + + + The thread pool for executing jobs + + + The type of job store + + SchedulerException + if initialization failed + + + + + Same as DirectSchedulerFactory#createScheduler(ThreadPool threadPool, JobStore jobStore), + with the addition of specifying the scheduler name and instance ID. This + scheduler can only be retrieved via DirectSchedulerFactory#getScheduler(String) + + The name for the scheduler. + The instance ID for the scheduler. + The thread pool for executing jobs + The type of job store + + + + Creates a scheduler using the specified thread pool and job store and + binds it for remote access. + + The name for the scheduler. + The instance ID for the scheduler. + The thread pool for executing jobs + The type of job store + The idle wait time. You can specify "-1" for + the default value, which is currently 30000 ms. + The db failure retry interval. + + + + Creates a scheduler using the specified thread pool and job store and + binds it for remote access. + + The name for the scheduler. + The instance ID for the scheduler. + The thread pool for executing jobs + The type of job store + + The idle wait time. You can specify TimeSpan.Zero for + the default value, which is currently 30000 ms. + The db failure retry interval. + + + + Creates a scheduler using the specified thread pool and job store and + binds it for remote access. + + The name for the scheduler. + The instance ID for the scheduler. + The thread pool for executing jobs + Thread executor. + The type of job store + + The idle wait time. You can specify TimeSpan.Zero for + the default value, which is currently 30000 ms. + The db failure retry interval. + + + + Creates a scheduler using the specified thread pool and job store and + binds it for remote access. + + The name for the scheduler. + The instance ID for the scheduler. + The thread pool for executing jobs + Thread executor. + The type of job store + + The idle wait time. You can specify TimeSpan.Zero for + the default value, which is currently 30000 ms. + The db failure retry interval. + The maximum batch size of triggers, when acquiring them + The time window for which it is allowed to "pre-acquire" triggers to fire + + + + Returns a handle to the Scheduler produced by this factory. + + you must call createRemoteScheduler or createScheduler methods before + calling getScheduler() + + + + SchedulerException + + + + Returns a handle to the Scheduler with the given name, if it exists. + + + + + Gets the log. + + The log. + + + + Gets the instance. + + The instance. + + + + Returns a handle to all known Schedulers (made by any + StdSchedulerFactory instance.). + + + + + + Conveys the detail properties of a given job instance. + + + Quartz does not store an actual instance of a type, but + instead allows you to define an instance of one, through the use of a . + + s have a name and group associated with them, which + should uniquely identify them within a single . + + + s are the 'mechanism' by which s + are scheduled. Many s can point to the same , + but a single can only point to one . + + + + + + + + James House + Marko Lahma (.NET) + + + + Conveys the detail properties of a given job instance. + JobDetails are to be created/defined with . + + + Quartz does not store an actual instance of a type, but + instead allows you to define an instance of one, through the use of a . + + s have a name and group associated with them, which + should uniquely identify them within a single . + + + s are the 'mechanism' by which s + are scheduled. Many s can point to the same , + but a single can only point to one . + + + + + + + + James House + Marko Lahma (.NET) + + + + Get a that is configured to produce a + identical to this one. + + + + + The key that identifies this jobs uniquely. + + + + + Get or set the description given to the instance by its + creator (if any). + + + + + Get or sets the instance of that will be executed. + + + + + Get or set the that is associated with the . + + + + + Whether or not the should remain stored after it is + orphaned (no s point to it). + + + If not explicitly set, the default value is . + + + if the Job should remain persisted after being orphaned. + + + + + Whether the associated Job class carries the . + + + + + + Whether the associated Job class carries the . + + + + + + Set whether or not the the should re-Execute + the if a 'recovery' or 'fail-over' situation is + encountered. + + + If not explicitly set, the default value is . + + + + + + Create a with no specified name or group, and + the default settings of all the other properties. + + Note that the , and + properties must be set before the job can be + placed into a . + + + + + + Create a with the given name, default group, and + the default settings of all the other properties. + If , Scheduler.DefaultGroup will be used. + + + If name is null or empty, or the group is an empty string. + + + + + Create a with the given name, and group, and + the default settings of all the other properties. + If , Scheduler.DefaultGroup will be used. + + + If name is null or empty, or the group is an empty string. + + + + + Create a with the given name, and group, and + the given settings of all the other properties. + + The name. + if , Scheduler.DefaultGroup will be used. + Type of the job. + if set to true, job will be durable. + if set to true, job will request recovery. + + ArgumentException if name is null or empty, or the group is an empty string. + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + Return a simple string representation of this object. + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Determines whether the specified detail is equal to this instance. + + The detail to examine. + + true if the specified detail is equal; otherwise, false. + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + Checks equality between given job detail and this instance. + + The detail to compare this instance with. + + + + + Serves as a hash function for a particular type, suitable + for use in hashing algorithms and data structures like a hash table. + + + A hash code for the current . + + + + + Get or sets the name of this . + + + if name is null or empty. + + + + + Get or sets the group of this . + If , will be used. + + + If the group is an empty string. + + + + + Returns the 'full name' of the in the format + "group.name". + + + + + Gets the key. + + The key. + + + + Get or set the description given to the instance by its + creator (if any). + + + May be useful for remembering/displaying the purpose of the job, though the + description has no meaning to Quartz. + + + + + Get or sets the instance of that will be executed. + + + if jobType is null or the class is not a . + + + + + Get or set the that is associated with the . + + + + + Set whether or not the the should re-Execute + the if a 'recovery' or 'fail-over' situation is + encountered. + + If not explicitly set, the default value is . + + + + + + + Whether or not the should remain stored after it is + orphaned (no s point to it). + + If not explicitly set, the default value is . + + + + if the Job should remain persisted after + being orphaned. + + + + + Whether the associated Job class carries the attribute. + + + + + Whether the associated Job class carries the attribute. + + + + + A context bundle containing handles to various environment information, that + is given to a instance as it is + executed, and to a instance after the + execution completes. + + + + The found on this object (via the + method) serves as a convenience - + it is a merge of the found on the + and the one found on the , with + the value in the latter overriding any same-named values in the former. + It is thus considered a 'best practice' that the Execute code of a Job + retrieve data from the JobDataMap found on this object + + + NOTE: Do not + expect value 'set' into this JobDataMap to somehow be set back onto a + job's own JobDataMap. + + + + s are also returned from the + + method. These are the same instances as those past into the jobs that are + currently executing within the scheduler. The exception to this is when your + application is using Quartz remotely (i.e. via remoting or WCF) - in which case you get + a clone of the s, and their references to + the and instances have been lost (a + clone of the is still available - just not a handle + to the job instance that is running). + + + + + + + + James House + Marko Lahma (.NET) + + + + A context bundle containing handles to various environment information, that + is given to a instance as it is + executed, and to a instance after the + execution completes. + + + + + Put the specified value into the context's data map with the given key. + Possibly useful for sharing data between listeners and jobs. + + NOTE: this data is volatile - it is lost after the job execution + completes, and all TriggerListeners and JobListeners have been + notified. + + + + + + + + + + Get the value with the given key from the context's data map. + + + + + + + Get a handle to the instance that fired the + . + + + + + Get a handle to the instance that fired the + . + + + + + Get a handle to the referenced by the + instance that fired the . + + + + + If the is being re-executed because of a 'recovery' + situation, this method will return . + + + + + Gets the refire count. + + The refire count. + + + + Get the convenience of this execution context. + + + + The found on this object serves as a convenience - + it is a merge of the found on the + and the one found on the , with + the value in the latter overriding any same-named values in the former. + It is thus considered a 'best practice' that the Execute code of a Job + retrieve data from the JobDataMap found on this object. + + + NOTE: Do not expect value 'set' into this JobDataMap to somehow be + set back onto a job's own JobDataMap. + + + Attempts to change the contents of this map typically result in an + illegal state. + + + + + + Get the associated with the . + + + + + Get the instance of the that was created for this + execution. + + Note: The Job instance is not available through remote scheduler + interfaces. + + + + + + The actual time the trigger fired. For instance the scheduled time may + have been 10:00:00 but the actual fire time may have been 10:00:03 if + the scheduler was too busy. + + Returns the fireTimeUtc. + + + + + The scheduled time the trigger fired for. For instance the scheduled + time may have been 10:00:00 but the actual fire time may have been + 10:00:03 if the scheduler was too busy. + + Returns the scheduledFireTimeUtc. + + + + + Gets the previous fire time. + + The previous fire time. + + + + Gets the next fire time. + + The next fire time. + + + + Get the unique Id that identifies this particular firing instance of the + trigger that triggered this job execution. It is unique to this + JobExecutionContext instance as well. + + the unique fire instance id + + + + + Returns the result (if any) that the set before its + execution completed (the type of object set as the result is entirely up + to the particular job). + + + + The result itself is meaningless to Quartz, but may be informative + to s or + s that are watching the job's + execution. + + + Set the result (if any) of the 's execution (the type of + object set as the result is entirely up to the particular job). + + + The result itself is meaningless to Quartz, but may be informative + to s or + s that are watching the job's + execution. + + + + + + The amount of time the job ran for. The returned + value will be until the job has actually completed (or thrown an + exception), and is therefore generally only useful to + s and s. + + + + + Create a JobExcecutionContext with the given context data. + + + + + Increments the refire count. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Put the specified value into the context's data map with the given key. + Possibly useful for sharing data between listeners and jobs. + + NOTE: this data is volatile - it is lost after the job execution + completes, and all TriggerListeners and JobListeners have been + notified. + + + + + + + + + + Get the value with the given key from the context's data map. + + + + + + + Get a handle to the instance that fired the + . + + + + + Get a handle to the instance that fired the + . + + + + + Get a handle to the referenced by the + instance that fired the . + + + + + If the is being re-executed because of a 'recovery' + situation, this method will return . + + + + + Gets the refire count. + + The refire count. + + + + Get the convenience of this execution context. + + + + The found on this object serves as a convenience - + it is a merge of the found on the + and the one found on the , with + the value in the latter overriding any same-named values in the former. + It is thus considered a 'best practice' that the Execute code of a Job + retrieve data from the JobDataMap found on this object. + + + NOTE: Do not expect value 'set' into this JobDataMap to somehow be + set back onto a job's own JobDataMap. + + + Attempts to change the contents of this map typically result in an + illegal state. + + + + + + Get the associated with the . + + + + + Get the instance of the that was created for this + execution. + + Note: The Job instance is not available through remote scheduler + interfaces. + + + + + + The actual time the trigger fired. For instance the scheduled time may + have been 10:00:00 but the actual fire time may have been 10:00:03 if + the scheduler was too busy. + + Returns the fireTimeUtc. + + + + + The scheduled time the trigger fired for. For instance the scheduled + time may have been 10:00:00 but the actual fire time may have been + 10:00:03 if the scheduler was too busy. + + Returns the scheduledFireTimeUtc. + + + + + Gets the previous fire time. + + The previous fire time. + + + + Gets the next fire time. + + The next fire time. + + + + Returns the result (if any) that the set before its + execution completed (the type of object set as the result is entirely up + to the particular job). + + + + The result itself is meaningless to Quartz, but may be informative + to s or + s that are watching the job's + execution. + + + Set the result (if any) of the 's execution (the type of + object set as the result is entirely up to the particular job). + + + The result itself is meaningless to Quartz, but may be informative + to s or + s that are watching the job's + execution. + + + + + + The amount of time the job ran for. The returned + value will be until the job has actually completed (or thrown an + exception), and is therefore generally only useful to + s and s. + + + + + Returns the fire instace id. + + + + + An implementation of the interface that remotely + proxies all method calls to the equivalent call on a given + instance, via remoting or similar technology. + + + + James House + Marko Lahma (.NET) + + + + This is the main interface of a Quartz Scheduler. + + + + A maintains a registry of + s and s. Once + registered, the is responsible for executing + s when their associated s + fire (when their scheduled time arrives). + + + instances are produced by a + . A scheduler that has already been + created/initialized can be found and used through the same factory that + produced it. After a has been created, it is in + "stand-by" mode, and must have its method + called before it will fire any s. + + + s are to be created by the 'client program', by + defining a class that implements the interface. + objects are then created (also by the client) to + define a individual instances of the . + instances can then be registered with the + via the %IScheduler.ScheduleJob(JobDetail, + Trigger)% or %IScheduler.AddJob(JobDetail, bool)% method. + + + s can then be defined to fire individual + instances based on given schedules. + s are most useful for one-time firings, or + firing at an exact moment in time, with N repeats with a given delay between + them. s allow scheduling based on time of day, + day of week, day of month, and month of year. + + + s and s have a name and + group associated with them, which should uniquely identify them within a single + . The 'group' feature may be useful for creating + logical groupings or categorizations of s and + s. If you don't have need for assigning a group to a + given s of s, then you can use + the constant defined on + this interface. + + + Stored s can also be 'manually' triggered through the + use of the %IScheduler.TriggerJob(string, string)% function. + + + Client programs may also be interested in the 'listener' interfaces that are + available from Quartz. The interface provides + notifications of executions. The + interface provides notifications of + firings. The + interface provides notifications of events and + errors. Listeners can be associated with local schedulers through the + interface. + + + The setup/configuration of a instance is very + customizable. Please consult the documentation distributed with Quartz. + + + + + + + + + Marko Lahma (.NET) + + + + returns true if the given JobGroup + is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + Get a object describing the settings + and capabilities of the scheduler instance. + + + Note that the data returned is an 'instantaneous' snap-shot, and that as + soon as it's returned, the meta data values may be different. + + + + + Return a list of objects that + represent all currently executing Jobs in this Scheduler instance. + + + + This method is not cluster aware. That is, it will only return Jobs + currently executing in this Scheduler instance, not across the entire + cluster. + + + Note that the list returned is an 'instantaneous' snap-shot, and that as + soon as it's returned, the true list of executing jobs may be different. + Also please read the doc associated with - + especially if you're using remoting. + + + + + + + Get the names of all known groups. + + + + + Get the names of all known groups. + + + + + Get the names of all groups that are paused. + + + + + Starts the 's threads that fire s. + When a scheduler is first created it is in "stand-by" mode, and will not + fire triggers. The scheduler can also be put into stand-by mode by + calling the method. + + + The misfire/recovery process will be started, if it is the initial call + to this method on this scheduler instance. + + + + + + + + Calls after the indicated delay. + (This call does not block). This can be useful within applications that + have initializers that create the scheduler immediately, before the + resources needed by the executing jobs have been fully initialized. + + + + + + + + Temporarily halts the 's firing of s. + + + + When is called (to bring the scheduler out of + stand-by mode), trigger misfire instructions will NOT be applied + during the execution of the method - any misfires + will be detected immediately afterward (by the 's + normal process). + + + The scheduler is not destroyed, and can be re-started at any time. + + + + + + + + Halts the 's firing of s, + and cleans up all resources associated with the Scheduler. Equivalent to + . + + + The scheduler cannot be re-started. + + + + + + Halts the 's firing of s, + and cleans up all resources associated with the Scheduler. + + + The scheduler cannot be re-started. + + + if the scheduler will not allow this method + to return until all currently executing jobs have completed. + + + + + + Add the given to the + Scheduler, and associate the given with + it. + + + If the given Trigger does not reference any , then it + will be set to reference the Job passed with it into this method. + + + + + Schedule the given with the + identified by the 's settings. + + + + + Schedule all of the given jobs with the related set of triggers. + + + If any of the given jobs or triggers already exist (or more + specifically, if the keys are not unique) and the replace + parameter is not set to true then an exception will be thrown. + + + + + Remove the indicated from the scheduler. + If the related job does not have any other triggers, and the job is + not durable, then the job will also be deleted. + + + + + Remove all of the indicated s from the scheduler. + + + If the related job does not have any other triggers, and the job is + not durable, then the job will also be deleted. + Note that while this bulk operation is likely more efficient than + invoking several + times, it may have the adverse affect of holding data locks for a + single long duration of time (rather than lots of small durations + of time). + + + + + Remove (delete) the with the + given key, and store the new given one - which must be associated + with the same job (the new trigger must have the job name & group specified) + - however, the new trigger need not have the same name as the old trigger. + + The to be replaced. + + The new to be stored. + + + if a with the given + name and group was not found and removed from the store (and the + new trigger is therefore not stored), otherwise + the first fire time of the newly scheduled trigger. + + + + + Add the given to the Scheduler - with no associated + . The will be 'dormant' until + it is scheduled with a , or + is called for it. + + + The must by definition be 'durable', if it is not, + SchedulerException will be thrown. + + + + + Delete the identified from the Scheduler - and any + associated s. + + true if the Job was found and deleted. + + + + Delete the identified jobs from the Scheduler - and any + associated s. + + + Note that while this bulk operation is likely more efficient than + invoking several + times, it may have the adverse affect of holding data locks for a + single long duration of time (rather than lots of small durations + of time). + + + true if all of the Jobs were found and deleted, false if + one or more were not deleted. + + + + + Trigger the identified + (Execute it now). + + + + + Trigger the identified (Execute it now). + + + the (possibly ) JobDataMap to be + associated with the trigger that fires the job immediately. + + + The of the to be executed. + + + + + Pause the with the given + key - by pausing all of its current s. + + + + + Pause all of the s in the + matching groups - by pausing all of their s. + + + + The Scheduler will "remember" that the groups are paused, and impose the + pause on any new jobs that are added to any of those groups until it is resumed. + + NOTE: There is a limitation that only exactly matched groups + can be remembered as paused. For example, if there are pre-existing + job in groups "aaa" and "bbb" and a matcher is given to pause + groups that start with "a" then the group "aaa" will be remembered + as paused and any subsequently added jobs in group "aaa" will be paused, + however if a job is added to group "axx" it will not be paused, + as "axx" wasn't known at the time the "group starts with a" matcher + was applied. HOWEVER, if there are pre-existing groups "aaa" and + "bbb" and a matcher is given to pause the group "axx" (with a + group equals matcher) then no jobs will be paused, but it will be + remembered that group "axx" is paused and later when a job is added + in that group, it will become paused. + + + + + + Pause the with the given key. + + + + + Pause all of the s in the groups matching. + + + + The Scheduler will "remember" all the groups paused, and impose the + pause on any new triggers that are added to any of those groups until it is resumed. + + NOTE: There is a limitation that only exactly matched groups + can be remembered as paused. For example, if there are pre-existing + triggers in groups "aaa" and "bbb" and a matcher is given to pause + groups that start with "a" then the group "aaa" will be remembered as + paused and any subsequently added triggers in that group be paused, + however if a trigger is added to group "axx" it will not be paused, + as "axx" wasn't known at the time the "group starts with a" matcher + was applied. HOWEVER, if there are pre-existing groups "aaa" and + "bbb" and a matcher is given to pause the group "axx" (with a + group equals matcher) then no triggers will be paused, but it will be + remembered that group "axx" is paused and later when a trigger is added + in that group, it will become paused. + + + + + + Resume (un-pause) the with + the given key. + + + If any of the 's s missed one + or more fire-times, then the 's misfire + instruction will be applied. + + + + + Resume (un-pause) all of the s + in matching groups. + + + If any of the s had s that + missed one or more fire-times, then the 's + misfire instruction will be applied. + + + + + + Resume (un-pause) the with the given + key. + + + If the missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + Resume (un-pause) all of the s in matching groups. + + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + Pause all triggers - similar to calling + on every group, however, after using this method + must be called to clear the scheduler's state of 'remembering' that all + new triggers will be paused as they are added. + + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + + Resume (un-pause) all triggers - similar to calling + on every group. + + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + Get the keys of all the s in the matching groups. + + + + + Get all s that are associated with the + identified . + + + The returned Trigger objects will be snap-shots of the actual stored + triggers. If you wish to modify a trigger, you must re-store the + trigger afterward (e.g. see ). + + + + + Get the names of all the s in the given + groups. + + + + + Get the for the + instance with the given key . + + + The returned JobDetail object will be a snap-shot of the actual stored + JobDetail. If you wish to modify the JobDetail, you must re-store the + JobDetail afterward (e.g. see ). + + + + + Get the instance with the given key. + + + The returned Trigger object will be a snap-shot of the actual stored + trigger. If you wish to modify the trigger, you must re-store the + trigger afterward (e.g. see ). + + + + + Get the current state of the identified . + + + + + + + + + + + Add (register) the given to the Scheduler. + + Name of the calendar. + The calendar. + if set to true [replace]. + whether or not to update existing triggers that + referenced the already existing calendar so that they are 'correct' + based on the new trigger. + + + + Delete the identified from the Scheduler. + + + If removal of the Calendar would result in + s pointing to non-existent calendars, then a + will be thrown. + + Name of the calendar. + true if the Calendar was found and deleted. + + + + Get the instance with the given name. + + + + + Get the names of all registered . + + + + + Request the interruption, within this Scheduler instance, of all + currently executing instances of the identified , which + must be an implementor of the interface. + + + + If more than one instance of the identified job is currently executing, + the method will be called on + each instance. However, there is a limitation that in the case that + on one instances throws an exception, all + remaining instances (that have not yet been interrupted) will not have + their method called. + + + + If you wish to interrupt a specific instance of a job (when more than + one is executing) you can do so by calling + to obtain a handle + to the job instance, and then invoke on it + yourself. + + + This method is not cluster aware. That is, it will only interrupt + instances of the identified InterruptableJob currently executing in this + Scheduler instance, not across the entire cluster. + + + + true is at least one instance of the identified job was found and interrupted. + + + + + + + Request the interruption, within this Scheduler instance, of the + identified executing job instance, which + must be an implementor of the interface. + + + This method is not cluster aware. That is, it will only interrupt + instances of the identified InterruptableJob currently executing in this + Scheduler instance, not across the entire cluster. + + + + + + + the unique identifier of the job instance to be interrupted (see + + + true if the identified job instance was found and interrupted. + + + + Determine whether a with the given identifier already + exists within the scheduler. + + the identifier to check for + true if a Job exists with the given identifier + + + + Determine whether a with the given identifier already + exists within the scheduler. + + the identifier to check for + true if a Trigger exists with the given identifier + + + + Clears (deletes!) all scheduling data - all s, s + s. + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + Reports whether the is in stand-by mode. + + + + + + + Reports whether the has been Shutdown. + + + + + Set the that will be responsible for producing + instances of classes. + + + JobFactories may be of use to those wishing to have their application + produce instances via some special mechanism, such as to + give the opportunity for dependency injection. + + + + + + Get a reference to the scheduler's , + through which listeners may be registered. + + the scheduler's + + + + + + + + Whether the scheduler has been started. + + + Note: This only reflects whether has ever + been called on this Scheduler, so it will return even + if the is currently in standby mode or has been + since shutdown. + + + + + + + + Construct a instance to proxy the given + RemoteableQuartzScheduler instance. + + + + + returns true if the given JobGroup + is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + Get a object describiing the settings + and capabilities of the scheduler instance. + + Note that the data returned is an 'instantaneous' snap-shot, and that as + soon as it's returned, the meta data values may be different. + + + + + + + Calls the equivalent method on the 'proxied' . + + + + Calls the equivalent method on the 'proxied' . - + - Gets a value indicating whether this instance is paused. + Calls the equivalent method on the 'proxied' . - true if this instance is paused; otherwise, false. - + + + Get the names of all groups that are paused. + + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . - + - Calls the equialent method on the 'proxied' . + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - + + + Get the names of all registered . + + + + Calls the equivalent method on the 'proxied' . - + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . @@ -8135,11 +11264,11 @@ Set the that will be responsible for producing instances of classes. -

+ JobFactories may be of use to those wishing to have their application produce instances via some special mechanism, such as to give the opertunity for dependency injection. -

+
@@ -8160,6 +11289,17 @@
+ + + This utility calls methods reflectively on the given objects even though the + methods are likely on a proper interface (ThreadPool, JobStore, etc). The + motivation is to be tolerant of older implementations that have not been + updated for the changes in the interfaces (eg. LocalTaskExecutorThreadPool in + spring quartz helpers) + + teck + Marko Lahma (.NET) + Holds references to Scheduler instances - ensuring uniqueness, and @@ -8204,34 +11344,23 @@ Responsible for creating the instances of to be used within the instance. -

- This implementation does not re-use any objects, it simply makes a new - JobRunShell each time is called. -

James House + Marko Lahma (.NET) - + Initialize the factory, providing a handle to the that should be made available within the and - the s within it, and a handle to the - that the shell will use in its own - operations with the . + the s within it. - + Called by the to obtain instances of . - - - Called by the to return instances of - . - - An implementation of the interface that directly @@ -8240,8 +11369,8 @@ - James House + Marko Lahma (.NET) @@ -8263,10 +11392,10 @@ Get a object describiing the settings and capabilities of the scheduler instance. -

+ Note that the data returned is an 'instantaneous' snap-shot, and that as soon as it's returned, the meta data values may be different. -

+
@@ -8275,30 +11404,30 @@ Calls the equivalent method on the 'proxied' .
+ + + Calls the equivalent method on the 'proxied' . + + - - + + Calls the equivalent method on the 'proxied' . + - + - Get the global that has - the given name. + Calls the equivalent method on the 'proxied' . - - - + - Get the global that - has the given name. + Calls the equivalent method on the 'proxied' . - - - + Construct a instance to proxy the given - instance, and with the given . + instance. @@ -8326,325 +11455,185 @@ Calls the equivalent method on the 'proxied' .
- + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. + Calls the equivalent method on the 'proxied' . - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Get the names of all registered . - - - - Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - - - Remove the identifed from the 's - list of global listeners. - - - - true if the identifed listener was found in the list, and removed - - - + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - - - Remove the identifed from the 's - list of global listeners. - - The name. - - true if the identifed listener was found in the list, and removed. - - - + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - + Calls the equivalent method on the 'proxied' . - + - Calls the equivalent method on the 'proxied' . + Get the names of all registered . + - + Request the interruption, within this Scheduler instance, of all currently executing instances of the identified , which must be an implementor of the interface. -

+ If more than one instance of the identified job is currently executing, the method will be called on each instance. However, there is a limitation that in the case that - on one instances throws an exception, all + on one instances throws an exception, all remaining instances (that have not yet been interrupted) will not have - their method called. -

-

+ their method called. + + If you wish to interrupt a specific instance of a job (when more than one is executing) you can do so by calling to obtain a handle - to the job instance, and then invoke on it + to the job instance, and then invoke on it yourself. -

-

+ + This method is not cluster aware. That is, it will only interrupt instances of the identified InterruptableJob currently executing in this Scheduler instance, not across the entire cluster. -

+
- - true is at least one instance of the identified job was found and interrupted. UnableToInterruptJobException if the job does not implement @@ -8690,48 +11679,7 @@ Calls the equivalent method on the 'proxied' .
- - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' , - passing the associated with this - instance. - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - - - - - Calls the equivalent method on the 'proxied' . - - - + Calls the equivalent method on the 'proxied' . @@ -8744,28 +11692,25 @@ An implementation of that does all of it's work of creating a instance - based on the contenents of a properties file. + based on the contents of a properties file. -

+ By default a properties are loaded from App.config's quartz section. - If that fails, then the "quartz.properties" - file located (as a embedded resource) in Quartz.dll is loaded. If you + If that fails, then the file is loaded "quartz.properties". If file does not exist, + default configration located (as a embedded resource) in Quartz.dll is loaded. If you wish to use a file other than these defaults, you must define the system property 'quartz.properties' to point to the file you want. -

- -

+ + See the sample properties that are distributed with Quartz for information about the various settings available within the file. -

- -

+ + Alternativly, you can explicitly Initialize the factory by calling one of the methods before calling . -

- -

+ + Instances of the specified , , classes will be created by name, and then any additional properties specified for them in the config @@ -8775,13 +11720,21 @@ 'MyProp' will be set with the value. Type conversion to primitive CLR types (int, long, float, double, boolean, enum and string) are performed before calling the property's setter method. -

+
James House Anthony Eden Mohammad Rezaei Marko Lahma (.NET)
+ + + Returns a handle to the default Scheduler, creating it if it does not + yet exist. + + + + Initializes a new instance of the class. @@ -8795,18 +11748,16 @@ - Initialize the with - the contenents of a Properties file. - -

+ Initialize the . +

+ By default a properties file named "quartz.properties" is loaded from the 'current working directory'. If that fails, then the - "quartz.properties" file located (as a resource) in the org/quartz - package is loaded. If you wish to use a file other than these defaults, + "quartz.properties" file located (as an embedded resource) in the Quartz.NET + assembly is loaded. If you wish to use a file other than these defaults, you must define the system property 'quartz.properties' to point to the file you want. -

-
+
@@ -8819,17 +11770,23 @@ Initialize the with - the contenents of the given Properties object. + the contents of the given key value collection object. + + + Needed while loadhelper is not constructed. + + + + Returns a handle to the Scheduler produced by this factory. - If one of the methods has not be previously called, then the default (no-arg) method @@ -8837,58 +11794,31 @@ -

+

Returns a handle to the Scheduler with the given name, if it exists (if it has already been instantiated). -

-
- - - - Returns a handle to the default Scheduler, creating it if it does not - yet exist. + - - -

+

Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.). -

-
- - - - Inspects a file and compares whether it's "last modified date" has changed - since the last time it was inspected. If the file has been updated, the - job invokes a "call-back" method on an identified - that can be found in the - . + - James House - - + - A marker interface for s that - wish to have their state maintained between executions. - - - instances follow slightly different rules from - regular instances. The key difference is that their - associated is re-persisted after every - execution of the job, thus preserving state for the next execution. The - other difference is that stateful jobs are not allowed to Execute - concurrently, which means new triggers that occur before the completion of - the method will be delayed. - - - - - - James House - Marko Lahma (.NET) + Inspects a directory and compares whether any files' "last modified dates" + have changed since the last time it was inspected. If one or more files + have been updated (or created), the job invokes a "call-back" method on an + identified that can be found in the + . +
+ pl47ypus + James House + Marko Lahma (.NET) +
@@ -8900,16 +11830,18 @@ no-argument constructor. provides a mechanism for 'instance member data' that may be required by some implementations of this interface. - - - + + + + + James House Marko Lahma (.NET) - + - Called by the when a + Called by the when a fires that is associated with the . @@ -8922,23 +11854,85 @@ The execution context. + + key with which to specify the directory to be + monitored - an absolute path is recommended. + + + key with which to specify the + to be + notified when the directory contents change. + + + key with which to specify a + value that represents the minimum number of milliseconds that must have + passed since the file's last modified time in order to consider the file + new/altered. This is necessary because another process may still be + in the middle of writing to the file when the scan occurs, and the + file may therefore not yet be ready for processing. + If this parameter is not specified, a default value of 5000 (five seconds) will be used. + + + + This is the main entry point for job execution. The scheduler will call this method on the + job once it is triggered. + + The that + the job will use during execution. + + + + Inspects a file and compares whether it's "last modified date" has changed + since the last time it was inspected. If the file has been updated, the + job invokes a "call-back" method on an identified + that can be found in the + . + + James House + Marko Lahma (.NET) + + + + + JobDataMap key with which to specify the name of the file to monitor. + + + + + JobDataMap key with which to specify the + to be notified when the file contents change. + + + + + key with which to specify a long + value that represents the minimum number of milliseconds that must have + past since the file's last modified time in order to consider the file + new/altered. This is necessary because another process may still be + in the middle of writing to the file when the scan occurs, and the + file may therefore not yet be ready for processing. + + If this parameter is not specified, a default value of + 5000 (five seconds) will be used. + + Initializes a new instance of the class. - + - Called by the when a + Called by the when a fires that is associated with the . -

+ The implementation may wish to set a result object on the JobExecutionContext before this method exits. The result itself is meaningless to Quartz, but may be informative to s or s that are watching the job's execution. -

+
The execution context. @@ -8957,12 +11951,24 @@
The log.
+ + Interface for objects wishing to receive a 'call-back' from a + Instances should be stored in the such that the + can find it. + James House + Marko Lahma (.NET) + + + An array of objects that were updated/added + since the last scan of the directory + Interface for objects wishing to receive a 'call-back' from a . James House + Marko Lahma (.NET) @@ -8975,9 +11981,21 @@ Built in job for executing native executables in a separate process. + + + JobDetail job = new JobDetail("dumbJob", null, typeof(Quartz.Jobs.NativeJob)); + job.JobDataMap.Put(Quartz.Jobs.NativeJob.PropertyCommand, "echo \"hi\" >> foobar.txt"); + Trigger trigger = TriggerUtils.MakeSecondlyTrigger(5); + trigger.Name = "dumbTrigger"; + sched.ScheduleJob(job, trigger); + + If PropertyWaitForProcess is true, then the integer exit value of the process + will be saved as the job execution result in the JobExecutionContext. + Matthew Payne James House Steinar Overbeck Cook + Marko Lahma (.NET) @@ -8997,7 +12015,7 @@ whether the job should wait for the execution of the native process to complete before it completes. -

Defaults to .

+ Defaults to .
@@ -9007,7 +12025,7 @@ consumed. If the process creates output, it is possible that it might 'hang' if the streams are not consumed. -

Defaults to .

+ Defaults to .
@@ -9021,18 +12039,18 @@ Initializes a new instance of the class.
- + - Called by the when a + Called by the when a fires that is associated with the . -

+ The implementation may wish to set a result object on the JobExecutionContext before this method exits. The result itself is meaningless to Quartz, but may be informative to s or s that are watching the job's execution. -

+
@@ -9071,8 +12089,9 @@ Jobs that perform work.
James House + Marko Lahma (.NET)
- + Do nothing. @@ -9106,12 +12125,46 @@ The e-mail message body. REQUIRED. - + Executes the job. The job execution context. + + + Holds a List of references to JobListener instances and broadcasts all + events to them (in order). + + + The broadcasting behavior of this listener to delegate listeners may be + more convenient than registering all of the listeners directly with the + Scheduler, and provides the flexibility of easily changing which listeners + get notified. + + + + + James House (jhouse AT revolition DOT net) + + + + Construct an instance with the given name. + + + (Remember to add some delegate listeners!) + + the name of this instance + + + + Construct an instance with the given name, and List of listeners. + + + + the name of this instance + the initial List of JobListeners to broadcast to. + Holds a List of references to SchedulerListener instances and broadcasts all @@ -9125,167 +12178,102 @@ James House + Marko Lahma (.NET) - + Construct an instance with the given List of listeners. The initial List of SchedulerListeners to broadcast to. - - - Holds a List of references to JobListener instances and broadcasts all - events to them (in order) - if the event is not excluded via filtering - (read on). - - -

- The broadcasting behavior of this listener to delegate listeners may be - more convenient than registering all of the listeners directly with the - Trigger, and provides the flexibility of easily changing which listeners - get notified. -

- -

- You may also register a number of Regular Expression patterns to match - the events against. If one or more patterns are registered, the broadcast - will only take place if the event applies to a job who's name/group - matches one or more of the patterns. -

-
- - - - - - James House -
- - Construct an instance with the given name. - - (Remember to add some delegate listeners!) - - @param name the name of this instance - - - Construct an instance with the given name, and List of listeners. - - @param name the name of this instance - @param listeners the initial List of JobListeners to broadcast to. - - + - If one or more name patterns are specified, only events relating to - jobs who's name matches the given regular expression pattern - will be dispatched to the delegate listeners. + Holds a List of references to TriggerListener instances and broadcasts all + events to them (in order). - - - - - If one or more group patterns are specified, only events relating to - jobs who's group matches the given regular expression pattern - will be dispatched to the delegate listeners. - - - - - - Holds a List of references to TriggerListener instances and broadcasts all - events to them (in order) - if the event is not excluded via filtering - (read on). - -

- The broadcasting behavior of this listener to delegate listeners may be - more convenient than registering all of the listeners directly with the - Trigger, and provides the flexibility of easily changing which listeners - get notified. -

- -

- You may also register a number of Regular Expression patterns to match - the events against. If one or more patterns are registered, the broadcast - will only take place if the event applies to a trigger who's name/group - matches one or more of the patterns. -

-
- - - - - - James House + The broadcasting behavior of this listener to delegate listeners may be + more convenient than registering all of the listeners directly with the + Scheduler, and provides the flexibility of easily changing which listeners + get notified. + + + + + James House (jhouse AT revolition DOT net)
The interface to be implemented by classes that want to be informed when a - fires. In general, applications that use a + fires. In general, applications that use a will not have use for this mechanism. - - + + + - + James House + Marko Lahma (.NET) - + - Called by the when a - has fired, and it's associated + Called by the when a + has fired, and it's associated is about to be executed. -

- It is called before the method of this + + It is called before the method of this interface. -

+
- The that has fired. + The that has fired. - The that will be passed to the 's method. + The that will be passed to the 's method.
- + - Called by the when a - has fired, and it's associated + Called by the when a + has fired, and it's associated is about to be executed. -

- It is called after the method of this - interface. -

-
- The that has fired. - The that will be passed to - the 's method. + + It is called after the method of this + interface. If the implementation vetos the execution (via + returning ), the job's execute method will not be called. + +
+ The that has fired. + The that will be passed to + the 's method. Returns true if job execution should be vetoed, false otherwise.
- + - Called by the when a + Called by the when a has misfired. -

+ Consideration should be given to how much time is spent in this method, as it will affect all triggers that are misfiring. If you have lots of triggers misfiring at once, it could be an issue it this method does a lot. -

+
- The that has misfired. + The that has misfired.
- + - Called by the when a - has fired, it's associated - has been executed, and it's method has been + Called by the when a + has fired, it's associated + has been executed, and it's method has been called. - The that was fired. + The that was fired. - The that was passed to the - 's method. + The that was passed to the + 's method. - The result of the call on the 's method. + The result of the call on the 's method. @@ -9293,36 +12281,23 @@ Get the name of the .
- - - Construct an instance with the given name. - - (Remember to add some delegate listeners!) - - the name of this instance - - + - Construct an instance with the given name, and List of listeners. + Construct an instance with the given name. + + (Remember to add some delegate listeners!) + the name of this instance - the initial List of TriggerListeners to broadcast to - - - - If one or more name patterns are specified, only events relating to - triggers who's name matches the given regular expression pattern - will be dispatched to the delegate listeners. - - - + - If one or more group patterns are specified, only events relating to - triggers who's group matches the given regular expression pattern - will be dispatched to the delegate listeners. + Construct an instance with the given name, and List of listeners. - + + + the name of this instance + the initial List of TriggerListeners to broadcast to. @@ -9332,36 +12307,38 @@ achieves "job chaining", or a "poor man's workflow". -

+ Generally an instance of this listener would be registered as a global job listener, rather than being registered directly to a given job. -

-

+ + If for some reason there is a failure creating the trigger for the follow-up job (which would generally only be caused by a rare serious failure in the system, or the non-existence of the follow-up job), an error messsage is logged, but no other action is taken. If you need more rigorous handling of the error, consider scheduling the triggering of the flow-up job within your job itself. -

+
James House + Marko Lahma (.NET)
A helpful abstract base class for implementors of . -

+ The methods in this class are empty so you only need to override the subset for the events you care about. -

+ -

+ You are required to implement to return the unique name of your . -

+
+ Marko Lahma (.NET)
@@ -9369,34 +12346,34 @@ Initializes a new instance of the class.
- + - Called by the when a - is about to be executed (an associated + Called by the when a + is about to be executed (an associated has occured). -

+ This method will not be invoked if the execution of the Job was vetoed by a . -

+
- +
- + - Called by the when a - was about to be executed (an associated + Called by the when a + was about to be executed (an associated has occured), but a vetoed it's execution. - + - + - Called by the after a - has been executed, and be for the associated 's - method has been called. + Called by the after a + has been executed, and be for the associated 's + method has been called. @@ -9419,13 +12396,13 @@
The name of this instance.
- + Add a chain mapping - when the Job identified by the first key completes the job identified by the second key will be triggered. - a Key with the name and group of the first job - a Key with the name and group of the follow-up job + a JobKey with the name and group of the first job + a JobKey with the name and group of the follow-up job @@ -9433,17 +12410,18 @@ . -

+ The methods in this class are empty so you only need to override the subset for the events you care about. -

+ -

+ You are required to implement to return the unique name of your . -

+
+ Marko Lahma (.NET)
@@ -9464,11 +12442,11 @@ logging.
-

+ The logged message is customizable by setting one of the following message properties to a string that conforms to the syntax of . -

-

+ + JobToBeFiredMessage - available message data are: @@ -9518,8 +12496,8 @@
Element
The default message text is "Job {1}.{0} fired (by trigger {4}.{3}) at: {2, date, HH:mm:ss MM/dd/yyyy" -

-

+ + JobSuccessMessage - available message data are: @@ -9576,8 +12554,8 @@
Element
The default message text is "Job {1}.{0} execution complete at {2, date, HH:mm:ss MM/dd/yyyy} and reports: {8" -

-

+ + JobFailedMessage - available message data are: @@ -9633,8 +12611,8 @@
Element
The default message text is "Job {1}.{0} execution failed at {2, date, HH:mm:ss MM/dd/yyyy} and reports: {8" -

-

+ + JobWasVetoedMessage - available message data are: @@ -9684,8 +12662,9 @@
Element
The default message text is "Job {1}.{0} was vetoed. It was to be fired (by trigger {4}.{3}) at: {2, date, HH:mm:ss MM/dd/yyyy" -

+
+ Marko Lahma (.NET)
@@ -9696,19 +12675,20 @@ will obviously interact with the scheduler in some way - either actively: by invoking actions on the scheduler, or passively: by being a , , and/or . -

+ If you use to Initialize your Scheduler, it can also create and Initialize your plugins - look at the configuration docs for details. -

-

+ + If you need direct access your plugin, you can have it explicitly put a reference to itself in the 's as part of its method. -

+ James House + Marko Lahma (.NET) @@ -9717,12 +12697,12 @@ At this point, the Scheduler's is not yet -

+ If you need direct access your plugin, you can have it explicitly put a reference to itself in the 's as part of its method. -

+
The name by which the plugin is identified. @@ -9765,35 +12745,35 @@ down.
- + - Called by the when a is - about to be executed (an associated has occurred). + Called by the when a is + about to be executed (an associated has occurred). This method will not be invoked if the execution of the Job was vetoed by a . - + - + - Called by the after a - has been executed, and be for the associated 's - method has been called. + Called by the after a + has been executed, and be for the associated 's + method has been called. - + - Called by the when a - was about to be executed (an associated + Called by the when a + was about to be executed (an associated has occured), but a vetoed it's execution. - + @@ -9835,12 +12815,12 @@ framework. -

+ The logged message is customizable by setting one of the following message properties to a string that conforms to the syntax of . -

+ -

+ TriggerFiredMessage - available message data are: @@ -9891,9 +12871,9 @@ The default message text is "Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy" -

+ -

+ TriggerMisfiredMessage - available message data are:

Element
@@ -9940,9 +12920,9 @@ The default message text is "Trigger {1}.{0} misfired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}. Should have fired at: {3, date, HH:mm:ss MM/dd/yyyy" -

+ -

+ TriggerCompleteMessage - available message data are:

Element
@@ -10005,9 +12985,10 @@ The default message text is "Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9" -

+ James House + Marko Lahma (.NET) @@ -10029,57 +13010,57 @@ down. - + - Called by the when a - has fired, and it's associated + Called by the when a + has fired, and it's associated is about to be executed. -

- It is called before the method of this + + It is called before the method of this interface. -

+
- The that has fired. - The that will be passed to the 's method. + The that has fired. + The that will be passed to the 's method.
- + - Called by the when a + Called by the when a has misfired. -

+ Consideration should be given to how much time is spent in this method, as it will affect all triggers that are misfiring. If you have lots of triggers misfiring at once, it could be an issue it this method does a lot. -

+
- The that has misfired. + The that has misfired.
- + - Called by the when a - has fired, it's associated - has been executed, and it's method has been + Called by the when a + has fired, it's associated + has been executed, and it's method has been called. - The that was fired. - The that was passed to the - 's method. - The result of the call on the 's method. + The that was fired. + The that was passed to the + 's method. + The result of the call on the 's method. - + - Called by the when a - has fired, and it's associated + Called by the when a + has fired, and it's associated is about to be executed. -

- It is called after the method of this + + It is called after the method of this interface. -

+
- The that has fired. - The that will be passed to - the 's method. + The that has fired. + The that will be passed to + the 's method.
@@ -10116,6 +13097,7 @@ James House + Marko Lahma (.NET) @@ -10141,64 +13123,13 @@ Determine whether or not the plug-in is configured to cause a clean Shutdown of the scheduler. -

+ The default value is . -

+
- - - Attribute to use with public properties that - can be set with Quartz configuration. Attribute can be used to advice - parsing to use correct type of time span (milliseconds, seconds, minutes, hours) - as it may depend on property. - - - - - - Initializes a new instance of the class. - - The rule. - - - - Gets the rule. - - The rule. - - - - Possible parse rules for s. - - - - - - - - - - - - - - - - - - - - - - - - - - - - + This plugin loads XML file(s) to add jobs and schedule them with triggers as the scheduler is initialized, and can optionally periodically scan the @@ -10211,18 +13142,18 @@ James House Pierre Awaragi - + - Initializes a new instance of the class. + Initializes a new instance of the class. - + - + Called during creation of the in order to give the a chance to initialize. @@ -10231,143 +13162,129 @@ The scheduler. SchedulerConfigException - + Called when the associated is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to. - + + Helper method for generating unique job/trigger name for the file scanning jobs (one per FileJob). The unique names are saved in jobTriggerNameSet. + + + - + Called in order to inform the that it should free up all of it's resources because the scheduler is shutting down. - + Gets the log. The log. - + Comma separated list of file names (with paths) to the XML files that should be read. - - - Whether or not jobs defined in the XML file should be overwrite existing - jobs with the same name. - - - + The interval at which to scan for changes to the file. If the file has been changed, it is re-loaded and parsed. The default value for the interval is 0, which disables scanning. - + Whether or not initialization of the plugin should fail (throw an exception) if the file cannot be found. Default is . - - - Whether or not the XML should be validated. Default is . + + + Information about a file that should be processed by . - - - Whether or not the XML schema should be validated. Default is . + + + Default object serialization strategy that uses + under the hood. + Marko Lahma - + - A uses all of the - types that are found in this package in its attempts to load a class, when - one scheme is found to work, it is promoted to the scheme that will be used - first the next time a class is loaded (in order to improve perfomance). + Interface for object serializers. - - This approach is used because of the wide variance in class loader behavior - between the various environments in which Quartz runs (e.g. disparate - application servers, stand-alone, mobile devices, etc.). Because of this - disparity, Quartz ran into difficulty with a one class-load style fits-all - design. Thus, this class loader finds the approach that works, then - 'remembers' it. - - James House + Marko Lahma + - - - Called to give the ClassLoadHelper a chance to Initialize itself, - including the oportunity to "steal" the class loader off of the calling - thread, which is the thread that is initializing Quartz. + + + Serializes given object as bytes + that can be stored to permanent stores. + Object to serialize, always non-null. - + - Return the class with the given name. + Deserializes object from byte array presentation. + Data to deserialize object from, always non-null and non-empty. - - Finds a resource with a given name. This method returns null if no - resource with this name is found. + + + Serializes given object as bytes + that can be stored to permanent stores. - name of the desired resource - - a java.net.URL object - + Object to serialize. - - Finds a resource with a given name. This method returns null if no - resource with this name is found. + + + Deserializes object from byte array presentation. - name of the desired resource - - a java.io.InputStream object - + Data to deserialize object from. that names the scheduler instance using just the machine hostname. -

+

+ This class is useful when you know that your scheduler instance will be the only one running on a particular machine. Each time the scheduler is restarted, it will get the same instance id as long as the machine is not renamed. -

- -
+ + Marko Lahma (.NET)
An IInstanceIdGenerator is responsible for generating the clusterwide unique - instance id for a nodde. -

+ instance id for a node. +

+ This interface may be of use to those wishing to have specific control over the mechanism by which the instances in their application are named. -

- -
+ + Marko Lahma (.NET)
- Generate the instance id for a - + + Generate the instance id for a The clusterwide unique instance id. @@ -10378,54 +13295,27 @@ The clusterwide unique instance id. - - - A that uses either the loader of it's own - class. - - - - - James House - - - - Called to give the ClassLoadHelper a chance to Initialize itself, - including the oportunity to "steal" the class loader off of the calling - thread, which is the thread that is initializing Quartz. - - - - Return the class with the given name. - - - Finds a resource with a given name. This method returns null if no - resource with this name is found. - - name of the desired resource - - a java.net.URL object - - - - Finds a resource with a given name. This method returns null if no - resource with this name is found. - - name of the desired resource - - a java.io.InputStream object - - A JobFactory that instantiates the Job instance (using the default no-arg - constructor, or more specifically: ), and - then attempts to set all values in the 's - onto bean properties of the . - + constructor, or more specifically: ), and + then attempts to set all values from the and + the 's merged onto + properties of the job. +
+ + Set the WarnIfPropertyNotFound property to true if you'd like noisy logging in + the case of values in the not mapping to properties on your job + class. This may be useful for troubleshooting typos of property names, etc. + but very noisy if you regularly (and purposely) have extra things in your + . + Also of possible interest is the ThrowIfPropertyNotFound property which + will throw exceptions on unmatched JobDataMap keys. + - + + James Houser @@ -10434,7 +13324,7 @@ The default JobFactory used by Quartz - simply calls - on the job class. + on the job class. @@ -10455,14 +13345,14 @@ James House + Marko Lahma (.NET) - + Called by the scheduler at the time of the trigger firing, in order to produce a instance on which to call Execute. -

It should be extremely rare for this method to throw an exception - basically only the the case where there is no way at all to instantiate and prepare the Job for execution. When the exception is thrown, the @@ -10470,18 +13360,17 @@ state, which will require human intervention (e.g. an application restart after fixing whatever configuration problem led to the issue wih instantiating the Job. -

-
- The TriggerFiredBundle from which the - and other info relating to the trigger firing can be obtained. + The TriggerFiredBundle from which the + and other info relating to the trigger firing can be obtained. + a handle to the scheduler that is about to execute the job SchedulerException if there is a problem instantiating the Job. the newly instantiated Job
- + Called by the scheduler at the time of the trigger firing, in order to produce a instance on which to call Execute. @@ -10495,18 +13384,19 @@ intervention (e.g. an application restart after fixing whatever configuration problem led to the issue wih instantiating the Job. - The TriggerFiredBundle from which the - and other info relating to the trigger firing can be obtained. + The TriggerFiredBundle from which the + and other info relating to the trigger firing can be obtained. + the newly instantiated Job SchedulerException if there is a problem instantiating the Job. - + Called by the scheduler at the time of the trigger firing, in order to produce a instance on which to call Execute. -

+ It should be extremely rare for this method to throw an exception - basically only the the case where there is no way at all to instantiate and prepare the Job for execution. When the exception is thrown, the @@ -10514,10 +13404,11 @@ state, which will require human intervention (e.g. an application restart after fixing whatever configuration problem led to the issue wih instantiating the Job. -

+
- The TriggerFiredBundle from which the - and other info relating to the trigger firing can be obtained. + The TriggerFiredBundle from which the + and other info relating to the trigger firing can be obtained. + the newly instantiated Job SchedulerException if there is a problem instantiating the Job.
@@ -10546,12 +13437,12 @@ This class implements a that utilizes RAM as its storage device. -

+ As you should know, the ramification of this is that access is extrememly fast, but the data is completely volatile - therefore this should not be used if true persistence between program shutdowns is required. -

+
James House Sharada Jambula @@ -10562,6 +13453,12 @@ Initializes a new instance of the class.
+ + + Gets the fired trigger record id. + + The fired trigger record id. + Called by the QuartzScheduler before the is @@ -10574,6 +13471,18 @@ the scheduler has started. + + + Called by the QuartzScheduler to inform the JobStore that + the scheduler has been paused. + + + + + Called by the QuartzScheduler to inform the JobStore that + the scheduler has resumed after being paused. + + Called by the QuartzScheduler to inform the that @@ -10581,127 +13490,129 @@ shutting down. - + + + Clears (deletes!) all scheduling data - all s, s + s. + + + - Store the given and . + Store the given and . - The scheduling context. - The to be stored. - The to be stored. + The to be stored. + The to be stored. - + Returns true if the given job group is paused. - Job group name - + returns true if the given TriggerGroup is paused. - - + Store the given . - The scheduling context. The to be stored. If , any existing in the with the same name and group should be over-written. - + Remove (delete) the with the given - name, and any s that reference + name, and any s that reference it. - The scheduling context. - The name of the to be removed. - The group name of the to be removed. if a with the given name and group was found and removed from the store. - + - Remove (delete) the with the + Remove (delete) the with the given name. - The scheduling context. - The name of the to be removed. - The group name of the to be removed. - if a with the given + if a with the given name and group was found and removed from the store. - + - Store the given . + Store the given . - The scheduling context. - The to be stored. - If , any existing in + The to be stored. + If , any existing in the with the same name and group should be over-written. - + - Remove (delete) the with the + Remove (delete) the with the given name. + - The scheduling context. - The name of the to be removed. - The group name of the to be removed. - if a with the given + if a with the given name and group was found and removed from the store. - Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger. + The to be removed. + Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger. - + Replaces the trigger. - The scheduling context. - Name of the trigger. - Name of the group. + The of the to be replaced. The new trigger. - + - Retrieve the for the given + Retrieve the for the given . - The scheduling context. - The name of the to be retrieved. - The group name of the to be retrieved. The desired , or null if there is no match. - + - Retrieve the given . + Retrieve the given . - The scheduling context. - The name of the to be retrieved. - The group name of the to be retrieved. - The desired , or null if there is no match. + The desired , or null if there is no match. - + + + Determine whether a with the given identifier already + exists within the scheduler. + + the identifier to check for + true if a Job exists with the given identifier + + + + Determine whether a with the given identifier already + exists within the scheduler. + + triggerKey the identifier to check for + true if a Trigger exists with the given identifier + + - Get the current state of the identified . + Get the current state of the identified . @@ -10710,112 +13621,107 @@ - + Store the given . - The scheduling context. The name. The to be stored. If , any existing in the with the same name and group should be over-written. - If , any s existing + If , any s existing in the that reference an existing Calendar with the same name with have their next fire time re-computed with the new . - + Remove (delete) the with the given name. -

+ If removal of the would result in - s pointing to non-existent calendars, then a - will be thrown.

+ s pointing to non-existent calendars, then a + will be thrown.
- The scheduling context. The name of the to be removed. if a with the given name was found and removed from the store.
- + - Retrieve the given . + Retrieve the given . - The scheduling context. The name of the to be retrieved. The desired , or null if there is no match. - + - Get the number of s that are + Get the number of s that are stored in the . - + - Get the number of s that are + Get the number of s that are stored in the . - + Get the number of s that are stored in the . - + Get the names of all of the s that - have the given group name. + match the given group matcher. - + Get the names of all of the s in the . -

+ If there are no ICalendars in the given group name, the result should be a zero-length array (not ). -

+
- + - Get the names of all of the s + Get the names of all of the s that have the given group name. - + Get the names of all of the groups. - + - Get the names of all of the groups. + Get the names of all of the groups. - + Get all of the Triggers that are associated to the given Job. -

+ If there are no matches, a zero-length array should be returned. -

+
- + Gets the trigger wrappers for job. - Name of the job. - Name of the group. @@ -10825,100 +13731,100 @@ Name of the cal. - + - Pause the with the given name. + Pause the with the given name. - + - Pause all of the s in the given group. -

+ Pause all of the s in the given group. + The JobStore should "remember" that the group is paused, and impose the pause on any new triggers that are added to the group while the group is paused. -

+
- + - Pause the with the given - name - by pausing all of its current s. + Pause the with the given + name - by pausing all of its current s. - + - Pause all of the s in the - given group - by pausing all of their s. -

+ Pause all of the s in the + given group - by pausing all of their s. + The JobStore should "remember" that the group is paused, and impose the pause on any new jobs that are added to the group while the group is paused. -

+
- + - Resume (un-pause) the with the given name. + Resume (un-pause) the with the given key. - If the missed one or more fire-times, then the - 's misfire instruction will be applied. + If the missed one or more fire-times, then the + 's misfire instruction will be applied. - + - Resume (un-pause) all of the s in the + Resume (un-pause) all of the s in the given group. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ + If any missed one or more fire-times, then the + 's misfire instruction will be applied. +
- + - Resume (un-pause) the with + Resume (un-pause) the with the given name. -

- If any of the 's s missed one - or more fire-times, then the 's misfire + + If any of the 's s missed one + or more fire-times, then the 's misfire instruction will be applied. -

+
- + - Resume (un-pause) all of the s + Resume (un-pause) all of the s in the given group. -

- If any of the s had s that - missed one or more fire-times, then the 's + + If any of the s had s that + missed one or more fire-times, then the 's misfire instruction will be applied. -

+
- + - Pause all triggers - equivalent of calling + Pause all triggers - equivalent of calling on every group. -

- When is called (to un-pause), trigger misfire + + When is called (to un-pause), trigger misfire instructions WILL be applied. -

+
- +
- + - Resume (un-pause) all triggers - equivalent of calling + Resume (un-pause) all triggers - equivalent of calling on every trigger group and setting all job groups unpaused />. -

- If any missed one or more fire-times, then the - 's misfire instruction will be applied. -

+ + If any missed one or more fire-times, then the + 's misfire instruction will be applied. +
- +
@@ -10927,43 +13833,40 @@ The trigger wrapper. - + Get a handle to the next trigger to be fired, and mark it as 'reserved' by the calling scheduler. - + - + Inform the that the scheduler no longer plans to - fire the given , that it had previously acquired + fire the given , that it had previously acquired (reserved). - + Inform the that the scheduler is now firing the - given (executing its associated ), + given (executing its associated ), that it had previously acquired (reserved). - + Inform the that the scheduler has completed the - firing of the given (and the execution its + firing of the given (and the execution its associated ), and that the - in the given should be updated if the + in the given should be updated if the is stateful. - + Sets the state of all triggers of job to specified state. - Name of the job. - The job group. - The internal state to set. @@ -10971,8 +13874,8 @@ - - + + @@ -10981,12 +13884,6 @@ have its misfire instruction applied. - - - Gets the fired trigger record id. - - The fired trigger record id. - Returns whether this instance supports persistence. @@ -10994,10 +13891,40 @@ - + + + Inform the of the Scheduler instance's Id, + prior to initialize being invoked. + + + + + Inform the of the Scheduler instance's name, + prior to initialize being invoked. + + + + + Comparer for trigger wrappers. + + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + - Comparer for triggers. + Serves as a hash function for a particular type. + + A hash code for the current . + + 2 @@ -11087,12 +14014,6 @@ A hash code for the current . - - - Gets the trigger - - The trigger - Scheduler exporter that exports scheduler to remoting context. @@ -11134,6 +14055,12 @@ scheduler to remoting context. + + + Gets or sets the name to use when binding to + tcp channel. + + Sets the channel type when registering remoting. @@ -11147,52 +14074,41 @@ . - - - A that simply calls . + + + A implementation that creates + connection to remote scheduler using remoting. - - - James House - - - Called to give the ClassLoadHelper a chance to Initialize itself, - including the oportunity to "steal" the class loader off of the calling - thread, which is the thread that is initializing Quartz. + + + Client Proxy to a IRemotableQuartzScheduler - - Return the class with the given name. + + + Returns a client proxy to a remote . + - + - Finds a resource with a given name. This method returns null if no - resource with this name is found. + Returns a client proxy to a remote . - name of the desired resource - - a Uri object - + - Finds a resource with a given name. This method returns null if no - resource with this name is found. + Gets or sets the remote scheduler address. - name of the desired resource - - a Stream object - + The remote scheduler address. The default InstanceIdGenerator used by Quartz when instance id is to be automatically generated. Instance id is of the form HOSTNAME + CURRENT_TIME. - - - - + Marko Lahma (.NET) + + @@ -11204,18 +14120,17 @@ This is class is a simple implementation of a thread pool, based on the interface. -

+

+ objects are sent to the pool with the method, which blocks until a becomes available. -

-

The pool has a fixed number of s, and does not grow or shrink based on demand. -

-
+ James House Juergen Donnerstag + Marko Lahma (.NET)
@@ -11234,6 +14149,7 @@ James House + Marko Lahma (.NET) @@ -11262,9 +14178,12 @@ - Called by the QuartzScheduler before the is + Must be called before the is used, in order to give the it a chance to Initialize. + + Typically called by the . + @@ -11275,9 +14194,20 @@ - Gets the size of the pool. + Get the current number of threads in the . + + + + + Inform the of the Scheduler instance's Id, + prior to initialize being invoked. + + + + + Inform the of the Scheduler instance's name, + prior to initialize being invoked. - The size of the pool. @@ -11361,6 +14291,18 @@ The size of the pool. + + + Inform the of the Scheduler instance's Id, + prior to initialize being invoked. + + + + + Inform the of the Scheduler instance's name, + prior to initialize being invoked. + + A Worker loops, waiting to Execute tasks. @@ -11389,2543 +14331,2308 @@ Loop, executing targets as they are received. - - - This is class is a simple implementation of a zero size thread pool, based on the - {@link org.quartz.spi.ThreadPool} interface. - - - The pool has zero s and does not grow or shrink based on demand. - Which means it is obviously not useful for most scenarios. When it may be useful - is to prevent creating any worker threads at all - which may be desirable for - the sole purpose of preserving system resources in the case where the scheduler - instance only exists in order to schedule jobs, but which will never execute - jobs (e.g. will never have Start() called on it). - - Wayne Fay - - - - Initializes a new instance of the class. - - - - - Called by the QuartzScheduler before the is - used, in order to give the it a chance to Initialize. - - - - - Shutdowns this instance. - - - - - Called by the QuartzScheduler to inform the - that it should free up all of it's resources because the scheduler is - shutting down. - - - - - - Execute the given in the next - available . - - - - - The implementation of this interface should not throw exceptions unless - there is a serious problem (i.e. a serious misconfiguration). If there - are no available threads, rather it should either queue the Runnable, or - block until a thread is available, depending on the desired strategy. - - - - - Determines the number of threads that are currently available in in - the pool. Useful for determining the number of times - can be called before returning - false. - - - the number of currently available threads - - - The implementation of this method should block until there is at - least one available thread. - - - - - Gets the log. - - The log. - - - - Gets the size of the pool. - - The size of the pool. - - - - A simple class (structure) used for returning execution-time data from the - JobStore to the . - - - James House - - - - Initializes a new instance of the class. - - The job. - The trigger. - The calendar. - if set to true [job is recovering]. - The fire time. - The scheduled fire time. - The previous fire time. - The next fire time. - - - - Gets the job detail. - - The job detail. - - - - Gets the trigger. - - The trigger. - - - - Gets the calendar. - - The calendar. - - - - Gets a value indicating whether this is recovering. - - true if recovering; otherwise, false. - - - - Returns the UTC fire time. - - - - - Gets the next UTC fire time. - - The next fire time. - Returns the nextFireTimeUtc. - - - - Gets the previous UTC fire time. - - The previous fire time. - Returns the previous fire time. - - - - Returns the scheduled UTC fire time. - - - - - DateTime related utility methods. - - - - - Assumes that given input is in UTC and sets the kind to be UTC. - Just a precaution if somebody does not set it explicitly. - This only works in .NET Framework 2.0 onwards. - - The datetime to check. - DateTime with kind set to UTC. - - - - Assumes that given input is in UTC and sets the kind to be UTC. - Just a precaution if somebody does not set it explicitly. - - The datetime to check. - DateTime with kind set to UTC. - - - - Manages a collection of IDbProviders, and provides transparent access - to their database. - - - James House - Sharada Jambula - Mohammad Rezaei - - - - Private constructor - - - - - Adds the connection provider. - - Name of the data source. - The provider. - - - - Get a database connection from the DataSource with the given name. - - a database connection - - + - Shuts down database connections from the DataSource with the given name, - if applicable for the underlying provider. - - a database connection - - - - Gets the db provider. + A that simply calls . - Name of the ds. - + + James House + Marko Lahma (.NET) - + - Get the class instance. + Called to give the ClassLoadHelper a chance to Initialize itself, + including the oportunity to "steal" the class loader off of the calling + thread, which is the thread that is initializing Quartz. - an instance of this class - - + + Return the class with the given name. + + - An implementation of that wraps another - and flags itself 'dirty' when it is modified. + Finds a resource with a given name. This method returns null if no + resource with this name is found. - James House + name of the desired resource + + a Uri object - + - Create a DirtyFlagMap that 'wraps' a . + Finds a resource with a given name. This method returns null if no + resource with this name is found. + name of the desired resource + + a Stream object + - + - Create a DirtyFlagMap that 'wraps' a that has the - given initial capacity. + InstanceIdGenerator that will use a to configure the scheduler. + If no value set for the property, a is thrown. + Alex Snaps - + - Create a DirtyFlagMap that 'wraps' a that has the - given initial capacity and load factor. + System property to read the instanceId from. - + - Creates a new object that is a copy of the current instance. + Returns the cluster wide value for this scheduler instance's id, based on a system property. - - A new object that is a copy of this instance. - - + - When implemented by a class, removes all elements from the . + A string of text to prepend (add to the beginning) to the instanceId found in the system property. - - The is read-only. - - + - When implemented by a class, determines whether the contains an element with the specified key. + A string of text to postpend (add to the end) to the instanceId found in the system property. - The key to locate in the . - - if the contains an element with the key; otherwise, . - - - is . - + - When implemented by a class, removes the element with the - specified key from the . + The name of the system property from which to obtain the instanceId. - The key of the element to remove. - - is . - - The is read-only. - -or- - The has a fixed size. - + + Defaults to . + - + - When implemented by a class, returns an - for the . + This is class is a simple implementation of a zero size thread pool, based on the + interface. - - An for the . - + + The pool has zero s and does not grow or shrink based on demand. + Which means it is obviously not useful for most scenarios. When it may be useful + is to prevent creating any worker threads at all - which may be desirable for + the sole purpose of preserving system resources in the case where the scheduler + instance only exists in order to schedule jobs, but which will never execute + jobs (e.g. will never have Start() called on it). + + Wayne Fay + Marko Lahma (.NET) - + - When implemented by a class, adds an element with the provided key and value to the . + Initializes a new instance of the class. - The to use as the key of the element to add. - The to use as the value of the element to add. - is . - - An element with the same key already exists in the . - - - The is read-only. - -or- - The has a fixed size. - - + - When implemented by a class, copies the elements of - the to an , starting at a particular index. + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. - The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. - The zero-based index in at which copying begins. - - is . - - is less than zero. - - - is multidimensional. - -or- - - is equal to or greater than the length of . - -or- - The number of elements in the source is greater than the available space from to the end of the destination . - - The type of the source cannot be cast automatically to the type of the destination . - + - Clear the 'dirty' flag (set dirty flag to ). + Shutdowns this instance. - + - Determines whether the specified obj contains value. + Called by the QuartzScheduler to inform the + that it should free up all of it's resources because the scheduler is + shutting down. - The obj. - - true if the specified obj contains value; otherwise, false. - + - + - Gets the entries as a set. + Execute the given in the next + available . + + + The implementation of this interface should not throw exceptions unless + there is a serious problem (i.e. a serious misconfiguration). If there + are no available threads, rather it should either queue the Runnable, or + block until a thread is available, depending on the desired strategy. + - + - Determines whether the specified is equal to the current . + Determines the number of threads that are currently available in in + the pool. Useful for determining the number of times + can be called before returning + false. - The to compare with the current . - if the specified is equal to the - current ; otherwise, . + the number of currently available threads + + The implementation of this method should block until there is at + least one available thread. + - + - Serves as a hash function for a particular type, suitable - for use in hashing algorithms and data structures like a hash table. + Gets the log. - - A hash code for the current . - + The log. - + - Gets keyset for this map. + Gets the size of the pool. - + The size of the pool. - + - Puts the value behind a specified key. + Inform the of the Scheduler instance's Id, + prior to initialize being invoked. - The key. - The val. - - + - Puts all. + Inform the of the Scheduler instance's name, + prior to initialize being invoked. - The t. - + - Determine whether the is flagged dirty. + A simple class (structure) used for returning execution-time data from the + JobStore to the . + + James House + Marko Lahma (.NET) - + - Get a direct handle to the underlying Map. + Initializes a new instance of the class. + The job. + The trigger. + The calendar. + if set to true [job is recovering]. + The fire time. + The scheduled fire time. + The previous fire time. + The next fire time. - + - Gets a value indicating whether this instance is empty. + Gets the job detail. - true if this instance is empty; otherwise, false. + The job detail. - + - Gets or sets the with the specified key. + Gets the trigger. - + The trigger. - + - When implemented by a class, gets the number of - elements contained in the . + Gets the calendar. - + The calendar. - + - When implemented by a class, gets an containing the values in the . + Gets a value indicating whether this is recovering. - + true if recovering; otherwise, false. - - - When implemented by a class, gets an containing the keys of the . - - + + + Returns the UTC fire time. + - + - When implemented by a class, gets a value indicating whether the - is read-only. + Gets the next UTC fire time. - + The next fire time. + Returns the nextFireTimeUtc. - + - When implemented by a class, gets a value indicating whether the - has a fixed size. + Gets the previous UTC fire time. - + The previous fire time. + Returns the previous fire time. - - - When implemented by a class, gets an object that - can be used to synchronize access to the . - - + + + Returns the scheduled UTC fire time. + - + - When implemented by a class, gets a value - indicating whether access to the is synchronized - (thread-safe). + Result holder for trigger firing event. - - + - Utility class for file handling related things. + Constructor. + - + - Resolves file to actual file if for example relative '~' used. + Constructor. - File name to check - Expanded file name or actual no resolving was done. - + - object representing a job or trigger key. + Bundle. - Jeffrey Wescott - - + - Utility class for storing two pieces of information together. + Possible exception. - Jeffrey Wescott - + - Test equality of this object with that. + Extension methods for . - object to compare - true if objects are equal, false otherwise - + - Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. + Tries to read value and returns the value if successfully read. Otherwise return default value + for value's type. - - A hash code for the current . - + + + + + - - - Get or sets the first object in the pair. + + + Extension methods for simplified access. - - - Get or sets the second object in the pair. + + + Returns string from given column name, or null if DbNull. - - Construct a new key with the given name and group. - + + + Returns int from given column name. - - the name - - - the group - - -

- Return the string representation of the key. The format will be: - <group>.<name>. -

- + + + Returns long from given column name. - the string representation of the key - - + - Get the name portion of the key. + Returns long from given column name, or null if DbNull. - the name - - -

- Get the group portion of the key. -

- + + + Returns decimal from given column name. - the group - - + - Wrapper class to access thread local data. - Data is either accessed from thread or HTTP Context's - data if HTTP Context is avaiable. + Manages a collection of IDbProviders, and provides transparent access + to their database. + + James House + Sharada Jambula + Mohammad Rezaei Marko Lahma (.NET) - - - Retrieves an object with the specified name. + + + Private constructor - The name of the item. - The object in the call context associated with the specified name or null if no object has been stored previously - + - Stores a given object and associates it with the specified name. + Adds the connection provider. - The name with which to associate the new item. - The object to store in the call context. + Name of the data source. + The provider. - + - Empties a data slot with the specified name. + Get a database connection from the DataSource with the given name. - The name of the data slot to empty. + a database connection - - - Utility methods that are used to convert objects from one type into another. + + + Shuts down database connections from the DataSource with the given name, + if applicable for the underlying provider. - Aleksandar Seovic + a database connection - + - Convert the value to the required (if necessary from a string). + Gets the db provider. - The proposed change value. - - The we must convert to. - - The new value, possibly the result of type conversion. + Name of the ds. + - - - Determines whether value is assignable to required type. + + + Get the class instance. - The value to check. - Type of the required. - - true if value can be assigned as given type; otherwise, false. + an instance of this class - + - Instantiates an instance of the type specified. + An implementation of that wraps another + and flags itself 'dirty' when it is modified. - The type to instantiate. - + James House + Marko Lahma (.NET) - + - Sets the object properties using reflection. + Create a DirtyFlagMap that 'wraps' a . - The object to set values to. - The properties to set to object. - + - This is an utility class used to parse the properties. + Create a DirtyFlagMap that 'wraps' a that has the + given initial capacity. - James House - + - Initializes a new instance of the class. + Serialization constructor. - The props. + + - + - Gets the string property. + Creates a new object that is a copy of the current instance. - The name. - + + A new object that is a copy of this instance. + - + - Gets the string property. + When implemented by a class, removes all elements from the . - The name. - The default value. - + + The is read-only. + - + - Gets the string array property. + When implemented by a class, determines whether the contains an element with the specified key. - The name. - + The key to locate in the . + + if the contains an element with the key; otherwise, . + + + is . - + - Gets the string array property. + When implemented by a class, removes the element with the + specified key from the . - The name. - The default value. - + The key of the element to remove. + + is . + + The is read-only. + -or- + The has a fixed size. + - + - Gets the boolean property. + When implemented by a class, returns an + for the . - The name. - + + An for the . + - + - Gets the boolean property. + When implemented by a class, adds an element with the provided key and value to the . - The name. - if set to true [defaultValue]. - + The to use as the key of the element to add. + The to use as the value of the element to add. + is . + + An element with the same key already exists in the . + + + The is read-only. + -or- + The has a fixed size. + - + - Gets the byte property. + When implemented by a class, copies the elements of + the to an , starting at a particular index. - The name. - + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is . + + is less than zero. + + + is multidimensional. + -or- + + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + + The type of the source cannot be cast automatically to the type of the destination . - + - Gets the byte property. + Clear the 'dirty' flag (set dirty flag to ). - The name. - The default value. - - + - Gets the char property. + Determines whether the specified obj contains value. - The name. - + The obj. + + true if the specified obj contains value; otherwise, false. + - + - Gets the char property. + Gets the entries as a set. - The name. - The default value. - + - Gets the double property. + Determines whether the specified is equal to the current . - The name. - + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + - + - Gets the double property. + Serves as a hash function for a particular type, suitable + for use in hashing algorithms and data structures like a hash table. - The name. - The default value. - + + A hash code for the current . + - + - Gets the float property. + Gets keyset for this map. - The name. - + - Gets the float property. + Puts the value behind a specified key. - The name. - The default value. + The key. + The val. - + - Gets the int property. + Puts all. - The name. - + The t. - + - Gets the int property. + Determine whether the is flagged dirty. + + + + + Get a direct handle to the underlying Map. - The name. - The default value. - - + - Gets the int array property. + Gets a value indicating whether this instance is empty. - The name. - + true if this instance is empty; otherwise, false. - + - Gets the int array property. + Gets or sets the with the specified key. - The name. - The default value. - + - + - Gets the long property. + When implemented by a class, gets the number of + elements contained in the . - The name. - + - + - Gets the long property. + When implemented by a class, gets an containing the values in the . - The name. - The def. - + - + - Gets the TimeSpan property. + When implemented by a class, gets an containing the keys of the . - The name. - The def. - + - + - Gets the short property. + When implemented by a class, gets a value indicating whether the + is read-only. - The name. - + - + - Gets the short property. + When implemented by a class, gets a value indicating whether the + has a fixed size. - The name. - The default value. - + - + - Gets the property groups. + When implemented by a class, gets an object that + can be used to synchronize access to the . - The prefix. - + - + - Gets the property group. + When implemented by a class, gets a value + indicating whether access to the is synchronized + (thread-safe). - The prefix. - + - + - Gets the property group. + Utility class for file handling related things. - The prefix. - if set to true [strip prefix]. - + Marko Lahma - + - Get all properties that start with the given prefix. + Resolves file to actual file if for example relative '~' used. - The prefix for which to search. If it does not end in a "." then one will be added to it for search purposes. - Whether to strip off the given in the result's keys. - Optional array of fully qualified prefixes to exclude. For example if is "a.b.c", then might be "a.b.c.ignore". - Group of that start with the given prefix, optionally have that prefix removed, and do not include properties that start with one of the given excluded prefixes. + File name to check + Expanded file name or actual no resolving was done. - + - Reads the properties from assembly (embedded resource). + Object representing a job or trigger key. - The file name to read resources from. - + Jeffrey Wescott + Marko Lahma (.NET) - + - Reads the properties from file system. + The default group for scheduling entities, with the value "DEFAULT". - The file name to read resources from. - - - - Gets the underlying properties. + + + Construct a new key with the given name and group. - The underlying properties. + the name + the group - - - An implementation of that wraps another - and flags itself 'dirty' when it is modified, enforces that all keys are - strings. - + + + Return the string representation of the key. The format will be: + <group>.<name>. + + + + the string representation of the key + - + - Initializes a new instance of the class. + Get the name portion of the key. + the name + - - - Initializes a new instance of the class. + + + Get the group portion of the key. + + - The initial capacity. + the group + - + - Initializes a new instance of the class. + Wrapper class to access thread local data. + Data is either accessed from thread or HTTP Context's + data if HTTP Context is avaiable. - The initial capacity. - The load factor. + Marko Lahma .NET - + - Gets the keys. + Retrieves an object with the specified name. - + The name of the item. + The object in the call context associated with the specified name or null if no object has been stored previously - + - Adds the name-value pairs in the given to the . -

- All keys must be s, and all values must be serializable. -

+ Stores a given object and associates it with the specified name.
+ The name with which to associate the new item. + The object to store in the call context.
- + - Adds the given value to the 's - data map. + Empties a data slot with the specified name. + The name of the data slot to empty. - + - Adds the given value to the 's - data map. + Generic extension methods for objects. - + - Adds the given value to the 's - data map. + Creates a deep copy of object by serializing to memory stream. + - + - Adds the given value to the 's - data map. + Utility methods that are used to convert objects from one type into another. + Aleksandar Seovic + Marko Lahma - - - Adds the given value to the 's - data map. + + + Convert the value to the required (if necessary from a string). + The proposed change value. + + The we must convert to. + + The new value, possibly the result of type conversion. - + - Adds the given value to the 's - data map. + Determines whether value is assignable to required type. + The value to check. + Type of the required. + + true if value can be assigned as given type; otherwise, false. + - + - Adds the given value to the 's - data map. + Instantiates an instance of the type specified. + - + - Adds the given serializable object value to the . + Sets the object properties using reflection. - - - Retrieve the identified value from the . + + + Sets the object properties using reflection. + The object to set values to. + The properties to set to object. - + - Retrieve the identified value from the . + This is an utility class used to parse the properties. + James House + Marko Lahma (.NET) - + - Retrieve the identified value from the . + Initializes a new instance of the class. + The props. - + - Retrieve the identified value from the . + Gets the string property. + The name. + - - - Retrieve the identified value from the . + + + Gets the string property. + The name. + The default value. + - + - Retrieve the identified value from the . + Gets the string array property. + The name. + - + - Retrieve the identified value from the . + Gets the string array property. + The name. + The default value. + - - - Object representing a job or trigger key. + + + Gets the boolean property. - James House + The name. + - - - Construct a new TriggerStatus with the status name and nextFireTime. + + + Gets the boolean property. - The trigger's status - The next UTC time the trigger will fire + The name. + if set to true [defaultValue]. + - + - Return the string representation of the TriggerStatus. + Gets the byte property. + The name. + - + - Gets or sets the job key. + Gets the byte property. - The job key. + The name. + The default value. + - + - Gets or sets the key. + Gets the char property. - The key. + The name. + - + - Get the name portion of the key. + Gets the char property. - the name + The name. + The default value. + - + - Get the group portion of the key. + Gets the double property. - the group + The name. + - - - Wraps a . + + + Gets the double property. - Chris Bonham + The name. + The default value. + - + - Gets or sets the name of the calendar. + Gets the float property. - The name of the calendar. + The name. + - + - Gets or sets the name of the class. + Gets the float property. - The name of the class. + The name. + The default value. + - + - Gets or sets the calendar. + Gets the int property. - The calendar. + The name. + - + - Gets or sets a description for the instance - may be - useful for remembering/displaying the purpose of the calendar, though - the description has no meaning to Quartz. + Gets the int property. - + The name. + The default value. + - + - Set a new base calendar or remove the existing one. + Gets the int array property. - + The name. + - - - Wraps a and . + + + Gets the int array property. - Chris Bonham - James House + The name. + The default value. + - + - Adds a trigger to this bundle. + Gets the long property. - The trigger. + The name. + - + - Removes the given trigger from this bundle. + Gets the long property. - The trigger. + The name. + The def. + - + - Gets or sets the job detail. + Gets the TimeSpan property. - The job detail. + The name. + The def. + - + - Gets or sets the triggers associated with this bundle. + Gets the short property. - The triggers. + The name. + - + - Gets the name of the bundle. + Gets the short property. - The name. + The name. + The default value. + - + - Gets the full name. + Gets the property groups. - The full name. + The prefix. + - + - Gets a value indicating whether this is valid. + Gets the property group. - true if valid; otherwise, false. + The prefix. + - - - Parses an XML file that declares Jobs and their schedules (Triggers). + + + Gets the property group. - -

- The xml document must conform to the format defined in - "job_scheduling_data.xsd" -

- -

- After creating an instance of this class, you should call one of the - functions, after which you may call the - function to get a handle to the defined Jobs and Triggers, which can then be - scheduled with the . Alternatively, you could call - the function to do all of this - in one step. -

- -

- The same instance can be used again and again, with the list of defined Jobs - being cleared each time you call a method, - however a single instance is not thread-safe. -

-
- Chris Bonham - James House - Marko Lahma (.NET) + The prefix. + if set to true [strip prefix]. +
- - - XML Schema dateTime datatype format. -

- See - http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#dateTime -

+ + + Get all properties that start with the given prefix. + The prefix for which to search. If it does not end in a "." then one will be added to it for search purposes. + Whether to strip off the given in the result's keys. + Optional array of fully qualified prefixes to exclude. For example if is "a.b.c", then might be "a.b.c.ignore". + Group of that start with the given prefix, optionally have that prefix removed, and do not include properties that start with one of the given excluded prefixes. - + - Constructor for JobSchedulingDataProcessor. + Reads the properties from assembly (embedded resource). + The file name to read resources from. + - + - Constructor for JobSchedulingDataProcessor. + Reads the properties from file system. - whether or not to validate XML. - whether or not to validate XML schema. + The file name to read resources from. + - - - Process the xml file in the default location (a file named - "quartz_jobs.xml" in the current working directory). + + + Gets the underlying properties. + The underlying properties. - + - Process the xml file named . + Extension methods for . - meta data file name. - + - Process the xmlfile named with the given system - ID. + Allows null-safe trimming of string. - Name of the file. - The system id. + + - + - Process the xmlfile named with the given system - ID. + Trims string and if resulting string is empty, null is returned. - The stream. - The system id. + + - - - Process the xml file in the default location, and schedule all of the - jobs defined within it. + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified, enforces that all keys are + strings. + Marko Lahma (.NET) - + - Process the xml file in the given location, and schedule all of the - jobs defined within it. + Initializes a new instance of the class. - meta data file name. - The scheduler. - if set to true overwrite existing jobs. - + - Process the xml file in the given location, and schedule all of the - jobs defined within it. + Initializes a new instance of the class. - Name of the file. - The system id. - The sched. - if set to true [over write existing jobs]. + The initial capacity. - + - Add the Jobs and Triggers defined in the given map of - s to the given scheduler. + Serialization constructor. - The job bundles. - The sched. - if set to true [over write existing jobs]. + + - + - Returns a for the job name. + Determines whether the specified is equal to the current . - The name. + The to compare with the current . - a for the job name. + if the specified is equal to the + current ; otherwise, . - + - Returns an from the fileName as a resource. + Serves as a hash function for a particular type, suitable + for use in hashing algorithms and data structures like a hash table. - Name of the file. - an from the fileName as a resource. + A hash code for the current . - + - Schedules a given job and trigger (both wrapped by a ). + Gets the keys. - job wrapper. - - if the Job or Trigger cannot be added to the Scheduler, or - there is an internal Scheduler error. - + - + - Schedules a given job and trigger (both wrapped by a ). + Adds the name-value pairs in the given to the . + + All keys must be s, and all values must be serializable. + - The job. - The sched. - if set to true [local over write existing jobs]. - - if the Job or Trigger cannot be added to the Scheduler, or - there is an internal Scheduler error. - - + - Adds a scheduled job. + Adds the given value to the 's + data map. - The job. - + - Adds a calendar. + Adds the given value to the 's + data map. - The sched. - calendar bundle. - SchedulerException if the Calendar cannot be added to the Scheduler, or - + - Adds a detected validation exception. + Adds the given value to the 's + data map. - The exception. - + - Resets the the number of detected validation exceptions. + Adds the given value to the 's + data map. - - - Throws a ValidationException if the number of validationExceptions - detected is greater than zero. + + + Adds the given value to the 's + data map. - - DTD validation exception. - - - - Gets or sets whether to overwrite existing jobs. + + + Adds the given value to the 's + data map. - + - Gets the log. + Adds the given value to the 's + data map. - The log. - + - Returns a of scheduled jobs. -

- The key is the job name and the value is a - containing the and . -

+ Retrieve the identified value from the .
- a of scheduled jobs. -
- + - Helper class to map constant names to their values. + Retrieve the identified value from the . - - + + + Retrieve the identified value from the . + - - + + + Retrieve the identified value from the . + - - + + + Retrieve the identified value from the . + - - + + + Retrieve the identified value from the . + - - + + + Retrieve the identified value from the . + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - Reports JobSchedulingDataProcessor validation exceptions. - - Chris Bonham - - - - Constructor for ValidationException. - - - - - Constructor for ValidationException. - - exception message. - - - - Constructor for ValidationException. - - collection of validation exceptions. - - - - Gets the validation exceptions. - - The validation exceptions. - - - - Returns the detail message string. - - - - - An exception that is thrown to indicate that there has been a critical - failure within the scheduler's core services (such as loss of database - connectivity). - - James House - - - - Create a with the given message. - - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The class name is null or is zero (0). - The info parameter is null. - - - - Provides a parser and evaluator for unix-like cron expressions. Cron - expressions provide the ability to specify complex time combinations such as - "At 8:00am every Monday through Friday" or "At 1:30am every - last Friday of the month". - - -

- Cron expressions are comprised of 6 required fields and one optional field - separated by white space. The fields respectively are described as follows: -

-
Element
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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-2099 , - /// /
-

- The '*' character is used to specify all values. For example, "*" - in the minute field means "every minute". -

-

- The '?' character is allowed for the day-of-month and day-of-week fields. It - is used to specify 'no specific value'. This is useful when you need to - specify something in one of the two fields, but not the other. -

-

- The '-' character is used to specify ranges For example "10-12" in - the hour field means "the hours 10, 11 and 12". -

-

- The ',' character is used to specify additional values. For example - "MON,WED,FRI" in the day-of-week field means "the days Monday, - Wednesday, and Friday". -

-

- The '/' character is used to specify increments. For example "0/15" - in the seconds field means "the seconds 0, 15, 30, and 45". And - "5/15" in the seconds field means "the seconds 5, 20, 35, and - 50". Specifying '*' before the '/' is equivalent to specifying 0 is - the value to start with. Essentially, for each field in the expression, there - is a set of numbers that can be turned on or off. For seconds and minutes, - the numbers range from 0 to 59. For hours 0 to 23, for days of the month 0 to - 31, and for months 1 to 12. The "/" character simply helps you turn - on every "nth" value in the given set. Thus "7/6" in the - month field only turns on month "7", it does NOT mean every 6th - month, please note that subtlety. -

-

- The 'L' character is allowed for the day-of-month and day-of-week fields. - This character is short-hand for "last", but it has different - meaning in each of the two fields. For example, the value "L" in - the day-of-month field means "the last day of the month" - day 31 - for January, day 28 for February on non-leap years. If used in the - day-of-week field by itself, it simply means "7" or - "SAT". But if used in the day-of-week field after another value, it - means "the last xxx day of the month" - for example "6L" - means "the last friday of the month". When using the 'L' option, it - is important not to specify lists, or ranges of values, as you'll get - confusing results. -

-

- The 'W' character is allowed for the day-of-month field. This character - is used to specify the weekday (Monday-Friday) nearest the given day. As an - example, if you were to specify "15W" as the value for the - day-of-month field, the meaning is: "the nearest weekday to the 15th of - the month". So if the 15th is a Saturday, the trigger will fire on - Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the - 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th. - However if you specify "1W" as the value for day-of-month, and the - 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not - 'jump' over the boundary of a month's days. The 'W' character can only be - specified when the day-of-month is a single day, not a range or list of days. -

-

- The 'L' and 'W' characters can also be combined for the day-of-month - expression to yield 'LW', which translates to "last weekday of the - month". -

-

- The '#' character is allowed for the day-of-week field. This character is - used to specify "the nth" XXX day of the month. For example, the - value of "6#3" in the day-of-week field means the third Friday of - the month (day 6 = Friday and "#3" = the 3rd one in the month). - Other examples: "2#1" = the first Monday of the month and - "4#5" = the fifth Wednesday of the month. Note that if you specify - "#5" and there is not 5 of the given day-of-week in the month, then - no firing will occur that month. If the '#' character is used, there can - only be one expression in the day-of-week field ("3#1,6#3" is - not valid, since there are two expressions). -

-

- -

-

- The legal characters and the names of months and days of the week are not - case sensitive. -

-

- NOTES: -

    -
  • Support for specifying both a day-of-week and a day-of-month value is - not complete (you'll need to use the '?' character in one of these fields). -
  • -
  • Overflowing ranges is supported - that is, having a larger number on - the left hand side than the right. You might do 22-2 to catch 10 o'clock - at night until 2 o'clock in the morning, or you might have NOV-FEB. It is - very important to note that overuse of overflowing ranges creates ranges - that don't make sense and no effort has been made to determine which - interpretation CronExpression chooses. An example would be - "0 0 14-6 ? * FRI-MON".
  • -
-

-
- Sharada Jambula - James House - Contributions from Mads Henderson - Refactoring from CronTrigger to CronExpression by Aaron Craven -
- - - Field specification for second. - - - - - Field specification for minute. - - - - - Field specification for hour. - - - - - Field specification for day of month. - - - - - Field specification for month. - - - - - Field specification for day of week. - - - - - Field specification for year. - - - - - Field specification for all wildcard value '*'. - - - - - Field specification for not specified value '?'. - - - - - Field specification for wildcard '*'. - - - - - Field specification for no specification at all '?'. - + + - - - Seconds. - + + - - - minutes. + + + Reports JobSchedulingDataProcessor validation exceptions. + Chris Bonham + Marko Lahma (.NET) - + - Hours. + Constructor for ValidationException. - + - Days of month. + Constructor for ValidationException. + exception message. - + - Months. + Constructor for ValidationException. + collection of validation exceptions. - + - Days of week. + Initializes a new instance of the class. + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The class name is null or is zero (0). + The info parameter is null. - + - Years. + Gets the validation exceptions. + The validation exceptions. - + - Last day of week. + Returns the detail message string. - - - Nth day of week. + + + Parses an XML file that declares Jobs and their schedules (Triggers). + + + The xml document must conform to the format defined in "job_scheduling_data_2_0.xsd" + + + + After creating an instance of this class, you should call one of the + functions, after which you may call the ScheduledJobs() + function to get a handle to the defined Jobs and Triggers, which can then be + scheduled with the . Alternatively, you could call + the function to do all of this + in one step. + + + + The same instance can be used again and again, with the list of defined Jobs + being cleared each time you call a method, + however a single instance is not thread-safe. + + + Chris Bonham + James House + Marko Lahma (.NET) - + - Last day of month. + Constructor for XMLSchedulingDataProcessor. - - - Nearest weekday. + + + Process the xml file in the default location (a file named + "quartz_jobs.xml" in the current working directory). - + - Calendar day of week. + Process the xml file named . + meta data file name. - + - Calendar day of month. + Process the xmlfile named with the given system + ID. + Name of the file. + The system id. - + - Expression parsed. + Process the xmlfile named with the given system + ID. + The stream. + The system id. - + - Constructs a new based on the specified - parameter. - - - String representation of the cron expression the new object should represent - - + Process the xml file in the default location, and schedule all of the jobs defined within it. + + Note that we will set overWriteExistingJobs after the default xml is parsed. + + - - - Indicates whether the given date satisfies the cron expression. + + + Process the xml file in the default location, and schedule all of the + jobs defined within it. - - Note that milliseconds are ignored, so two Dates falling on different milliseconds - of the same second will always have the same result here. - - The date to evaluate. - a boolean indicating whether the given date satisfies the cron expression - + - Returns the next date/time after the given date/time which - satisfies the cron expression. + Process the xml file in the given location, and schedule all of the + jobs defined within it. - the date/time at which to begin the search for the next valid date/time - the next valid date/time + meta data file name. + The scheduler. - + - Returns the next date/time after the given date/time which does - not satisfy the expression. + Process the xml file in the given location, and schedule all of the + jobs defined within it. - the date/time at which to begin the search for the next invalid date/time - the next valid date/time + Name of the file. + The system id. + The sched. - + - Returns the string representation of the + Schedules the given sets of jobs and triggers. - The string representation of the + The sched. - + - Indicates whether the specified cron expression can be parsed into a - valid cron expression + Adds a detected validation exception. - the expression to evaluate - a boolean indicating whether the given expression is a valid cron - expression + The exception. - + - Builds the expression. + Resets the the number of detected validation exceptions. - The expression. - + - Stores the expression values. + Throws a ValidationException if the number of validationExceptions + detected is greater than zero. - The position. - The string to traverse. - The type of value. - + + DTD validation exception. + - + - Checks the next value. + Whether the existing scheduling data (with same identifiers) will be + overwritten. - The position. - The string to check. - The value. - The type to search. - + + If false, and is not false, and jobs or + triggers with the same names already exist as those in the file, an + error will occur. + + - + - Gets the expression summary. + If true (and is false) then any + job/triggers encountered in this file that have names that already exist + in the scheduler will be ignored, and no error will be produced. - + - + - Gets the expression set summary. + Gets the log. - The data. - + The log. - + - Skips the white space. + Helper class to map constant names to their values. - The i. - The s. - - + - Finds the next white space. + CalendarIntervalScheduleBuilder is a + that defines calendar time (day, week, month, year) interval-based + schedules for Triggers. - The i. - The s. - + + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + Client code can then use the DSL to write code such as this: + + 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); + + + + + + + - + - Adds to set. + Base class for implementors. - The val. - The end. - The incr. - The type. + - + - Gets the set of given type. + Schedule builders offer fluent interface and are responsible for creating schedules. - The type of set to get. - + + + + - + - Gets the value. + Build the actual Trigger -- NOT intended to be invoked by end users, + but will rather be invoked by a TriggerBuilder which this + ScheduleBuilder is given to. - The v. - The s. - The i. - + - + - Gets the numeric value from string. + Build the actual Trigger -- NOT intended to be invoked by end users, + but will rather be invoked by a TriggerBuilder which this + ScheduleBuilder is given to. - The string to parse from. - The i. - + - + - Gets the month number. + Create a CalendarIntervalScheduleBuilder. - The string to map with. - + - Gets the day of week number. + Build the actual Trigger -- NOT intended to be invoked by end users, + but will rather be invoked by a TriggerBuilder which this + ScheduleBuilder is given to. - The s. - + - Gets the time from given time parts. + Specify the time unit and interval for the Trigger to be produced. - The seconds. - The minutes. - The hours. - The day of month. - The month. - + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + - + - Gets the next fire time after the given time. + Specify an interval in the IntervalUnit.SECOND that the produced + Trigger will repeat at. - The UTC time to start searching from. - + + + the number of seconds at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + - + - Creates the date time without milliseconds. + Specify an interval in the IntervalUnit.MINUTE that the produced + Trigger will repeat at. - The time. - + + + the number of minutes at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + - + - Advance the calendar to the particular hour paying particular attention - to daylight saving problems. + Specify an interval in the IntervalUnit.HOUR that the produced + Trigger will repeat at. - The date. - The hour. - + + + the number of hours at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + - + - Gets the time before. + Specify an interval in the IntervalUnit.DAY that the produced + Trigger will repeat at. - The end time. - + + + the number of days at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + - + - NOT YET IMPLEMENTED: Returns the final time that the - will match. + Specify an interval in the IntervalUnit.WEEK that the produced + Trigger will repeat at. - + + + the number of weeks at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + - + - Determines whether given year is a leap year. - - The year. - - true if the specified year is a leap year; otherwise, false. - + Specify an interval in the IntervalUnit.MONTH that the produced + Trigger will repeat at. + + + + the number of months at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + - + - Gets the last day of month. + Specify an interval in the IntervalUnit.YEAR that the produced + Trigger will repeat at. - The month num. - The year. - + + + the number of years at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + - + - Creates a new object that is a copy of the current instance. + If the Trigger misfires, use the + instruction. - - A new object that is a copy of this instance. - + + + the updated CronScheduleBuilder + - + - Sets or gets the time zone for which the of this - will be resolved. + If the Trigger misfires, use the + instruction. + + + the updated CalendarIntervalScheduleBuilder + - + - Gets the cron expression string. + If the Trigger misfires, use the + instruction. - The cron expression string. + + + the updated CalendarIntervalScheduleBuilder + - + - Helper class for cron expression handling. + TimeZone in which to base the schedule. + the time-zone for the schedule + the updated CalendarIntervalScheduleBuilder + - + - The value. + If intervals are a day or greater, this property (set to true) will + cause the firing of the trigger to always occur at the same time of day, + (the time of day of the startTime) regardless of daylight saving time + transitions. Default value is false. + + + + For example, without the property set, your trigger may have a start + time of 9:00 am on March 1st, and a repeat interval of 2 days. But + after the daylight saving transition occurs, the trigger may start + firing at 8:00 am every other day. + + + If however, the time of day does not exist on a given day to fire + (e.g. 2:00 am in the United States on the days of daylight saving + transition), the trigger will go ahead and fire one hour off on + that day, and then resume the normal hour on other days. If + you wish for the trigger to never fire at the "wrong" hour, then + you should set the property skipDayIfHourDoesNotExist. + + + + + + + + + + If intervals are a day or greater, and + preserveHourOfDayAcrossDaylightSavings property is set to true, and the + hour of the day does not exist on a given day for which the trigger + would fire, the day will be skipped and the trigger advanced a second + interval if this property is set to true. Defaults to false. + + CAUTION! If you enable this property, and your hour of day happens + to be that of daylight savings transition (e.g. 2:00 am in the United + States) and the trigger's interval would have had the trigger fire on + that day, then you may actually completely miss a firing on the day of + transition if that hour of day does not exist on that day! In such a + case the next fire time of the trigger will be computed as double (if + the interval is 2 days, then a span of 4 days between firings will + occur). + + - + - The position. + Extension methods that attach to . - + - A concrete that is used to fire a - at given moments in time, defined with Unix 'cron-like' definitions. + Provides a parser and evaluator for unix-like cron expressions. Cron + expressions provide the ability to specify complex time combinations such as + "At 8:00am every Monday through Friday" or "At 1:30am every + last Friday of the month". -

- For those unfamiliar with "cron", this means being able to create a firing - schedule such as: "At 8:00am every Monday through Friday" or "At 1:30am - every last Friday of the month". -

- -

- The format of a "Cron-Expression" string is documented on the - class. -

- -

- Here are some full examples:
+ + Cron expressions are comprised of 6 required fields and one optional field + separated by white space. The fields respectively are described as follows: + - + - - - - - - - - - - - - - - - - + + + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - + - + - - - - + - +
ExpressionField Name 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" />Allowed Values Allowed Special Characters
"0 15 10 * * ? *"" />Seconds Fire at 10:15am every day" />
"0 15 10 * * ? 2005"" />0-59 Fire at 10:15am every day during the year 2005" /> - , - /// /
"0 * 14 * * ?"" />Minutes Fire every minute starting at 2pm and ending at 2:59pm, every day" /> -
"0 0/5 14 * * ?"" />0-59 Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" /> - , - /// /
"0 0/5 14,18 * * ?"" />Hours 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 * * ?"" />0-23 Fire every minute starting at 2pm and ending at 2:05pm, every day" /> - , - /// /
"0 10,44 14 ? 3 WED"" />Day-of-month Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." /> -
"0 15 10 ? * MON-FRI"" />1-31 Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" /> - , - /// ? / L W C
"0 15 10 15 * ?"" />Month Fire at 10:15am on the 15th day of every month" /> -
"0 15 10 L * ?"" />1-12 or JAN-DEC Fire at 10:15am on the last day of every month" /> - , - /// /
"0 15 10 ? * 6L"" />Day-of-Week Fire at 10:15am on the last Friday of every month" /> -
"0 15 10 ? * 6L"" />1-7 or SUN-SAT Fire at 10:15am on the last Friday of every month" /> - , - /// ? / L #
"0 15 10 ? * 6L 2002-2005"" />Year (Optional) Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005" /> -
"0 15 10 ? * 6#3"" />empty, 1970-2199 Fire at 10:15am on the third Friday of every month" /> - , - /// /
-

- -

- Pay attention to the effects of '?' and '*' in the day-of-week and - day-of-month fields! -

- -

+ + The '*' character is used to specify all values. For example, "*" + in the minute field means "every minute". + + + The '?' character is allowed for the day-of-month and day-of-week fields. It + is used to specify 'no specific value'. This is useful when you need to + specify something in one of the two fields, but not the other. + + + The '-' character is used to specify ranges For example "10-12" in + the hour field means "the hours 10, 11 and 12". + + + The ',' character is used to specify additional values. For example + "MON,WED,FRI" in the day-of-week field means "the days Monday, + Wednesday, and Friday". + + + The '/' character is used to specify increments. For example "0/15" + in the seconds field means "the seconds 0, 15, 30, and 45". And + "5/15" in the seconds field means "the seconds 5, 20, 35, and + 50". Specifying '*' before the '/' is equivalent to specifying 0 is + the value to start with. Essentially, for each field in the expression, there + is a set of numbers that can be turned on or off. For seconds and minutes, + the numbers range from 0 to 59. For hours 0 to 23, for days of the month 0 to + 31, and for months 1 to 12. The "/" character simply helps you turn + on every "nth" value in the given set. Thus "7/6" in the + month field only turns on month "7", it does NOT mean every 6th + month, please note that subtlety. + + + The 'L' character is allowed for the day-of-month and day-of-week fields. + This character is short-hand for "last", but it has different + meaning in each of the two fields. For example, the value "L" in + the day-of-month field means "the last day of the month" - day 31 + for January, day 28 for February on non-leap years. If used in the + day-of-week field by itself, it simply means "7" or + "SAT". But if used in the day-of-week field after another value, it + means "the last xxx day of the month" - for example "6L" + means "the last friday of the month". You can also specify an offset + from the last day of the month, such as "L-3" which would mean the third-to-last + day of the calendar month. When using the 'L' option, it is important not to + specify lists, or ranges of values, as you'll get confusing/unexpected results. + + + The 'W' character is allowed for the day-of-month field. This character + is used to specify the weekday (Monday-Friday) nearest the given day. As an + example, if you were to specify "15W" as the value for the + day-of-month field, the meaning is: "the nearest weekday to the 15th of + the month". So if the 15th is a Saturday, the trigger will fire on + Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the + 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th. + However if you specify "1W" as the value for day-of-month, and the + 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not + 'jump' over the boundary of a month's days. The 'W' character can only be + specified when the day-of-month is a single day, not a range or list of days. + + + The 'L' and 'W' characters can also be combined for the day-of-month + expression to yield 'LW', which translates to "last weekday of the + month". + + + The '#' character is allowed for the day-of-week field. This character is + used to specify "the nth" XXX day of the month. For example, the + value of "6#3" in the day-of-week field means the third Friday of + the month (day 6 = Friday and "#3" = the 3rd one in the month). + Other examples: "2#1" = the first Monday of the month and + "4#5" = the fifth Wednesday of the month. Note that if you specify + "#5" and there is not 5 of the given day-of-week in the month, then + no firing will occur that month. If the '#' character is used, there can + only be one expression in the day-of-week field ("3#1,6#3" is + not valid, since there are two expressions). + + + + + + The legal characters and the names of months and days of the week are not + case sensitive. + + NOTES:

  • Support for specifying both a day-of-week and a day-of-month value is - not complete (you'll need to use the '?' character in on of these fields). + not complete (you'll need to use the '?' character in one of these fields).
  • -
  • Be careful when setting fire times between mid-night and 1:00 AM - - "daylight savings" can cause a skip or a repeat depending on whether the - time moves back or jumps forward.
  • +
  • Overflowing ranges is supported - that is, having a larger number on + the left hand side than the right. You might do 22-2 to catch 10 o'clock + at night until 2 o'clock in the morning, or you might have NOV-FEB. It is + very important to note that overuse of overflowing ranges creates ranges + that don't make sense and no effort has been made to determine which + interpretation CronExpression chooses. An example would be + "0 0 14-6 ? * FRI-MON".
-

+
- - - Sharada Jambula James House Contributions from Mads Henderson + Refactoring from CronTrigger to CronExpression by Aaron Craven + Marko Lahma (.NET) +
+ + + Field specification for second. + + + + + Field specification for minute. + + + + + Field specification for hour. + + + + + Field specification for day of month. + + + + + Field specification for month. + + + + + Field specification for day of week. + - + - The base abstract class to be extended by all triggers. + Field specification for year. - -

- s have a name and group associated with them, which - should uniquely identify them within a single . -

- -

- s are the 'mechanism' by which s - are scheduled. Many s can point to the same , - but a single can only point to one . -

- -

- Triggers can 'send' parameters/data to s by placing contents - into the on the . -

-
- - - - - - - James House - Sharada Jambula
- + - The default value for priority. + Field specification for all wildcard value '*'. - + - Remove all s from the . + Field specification for not specified value '?'. - + - Create a with no specified name, group, or . + Field specification for wildcard '*'. - - Note that the , and - the and properties - must be set before the can be placed into a - . - - + - Create a with the given name, and default group. + Field specification for no specification at all '?'. - - Note that the and - properties must be set before the - can be placed into a . - - The name. - + - Create a with the given name, and group. + Seconds. - - Note that the and - properties must be set before the - can be placed into a . - - The name. - if , Scheduler.DefaultGroup will be used. - + - Create a with the given name, and group. + minutes. - The name. - if , Scheduler.DefaultGroup will be used. - Name of the job. - The job group. - ArgumentException - if name is null or empty, or the group is an empty string. - - + - Add the specified name of a to - the end of the 's list of listeners. + Hours. - Name of the listener. - + - Remove the specified name of a - from the 's list of listeners. + Days of month. - true if the given name was found in the list, and removed - - + - This method should not be used by the Quartz client. -

- Called when the has decided to 'fire' - the trigger (Execute the associated ), in order to - give the a chance to update itself for its next - triggering (if any). -

- + Months.
- -
- + - This method should not be used by the Quartz client. + Days of week. - -

- Called by the scheduler at the time a is first - added to the scheduler, in order to have the - compute its first fire time, based on any associated calendar. -

- -

- After this method has been called, - should return a valid answer. -

-
- - The first time at which the will be fired - by the scheduler, which is also the same value - will return (until after the first firing of the ). -
- + - This method should not be used by the Quartz client. + Years. - - Called after the has executed the - associated with the - in order to get the final instruction code from the trigger. - - - is the that was used by the - 's method. - is the thrown by the - , if any (may be null). - - - One of the members. - - - - - - - - - Used by the to determine whether or not - it is possible for this to fire again. -

- If the returned value is then the - may remove the from the . -

+ + + Last day of week. - - - Returns the next time at which the is scheduled to fire. If - the trigger will not fire again, will be returned. Note that - the time returned can possibly be in the past, if the time that was computed - for the trigger to next fire has already arrived, but the scheduler has not yet - been able to fire the trigger (which would likely be due to lack of resources - e.g. threads). + + + Nth day of week. + + + + + Last day of month. + + + + + Nearest weekday. + + + + + Calendar day of week. + + + + + Calendar day of month. + + + + + Expression parsed. + + + + + Constructs a new based on the specified + parameter. + + String representation of the cron expression the new object should represent + + + + + + Indicates whether the given date satisfies the cron expression. + - The value returned is not guaranteed to be valid until after the - has been added to the scheduler. - - - + Note that milliseconds are ignored, so two Dates falling on different milliseconds + of the same second will always have the same result here. + + The date to evaluate. + a boolean indicating whether the given date satisfies the cron expression + + + + Returns the next date/time after the given date/time which + satisfies the cron expression. + + the date/time at which to begin the search for the next valid date/time + the next valid date/time + + + + Returns the next date/time after the given date/time which does + not satisfy the expression. + + the date/time at which to begin the search for the next invalid date/time + the next valid date/time + + + + Returns the string representation of the + + The string representation of the + + + + Indicates whether the specified cron expression can be parsed into a + valid cron expression + + the expression to evaluate + a boolean indicating whether the given expression is a valid cron + expression + + + + Builds the expression. + + The expression. + + + + Stores the expression values. + + The position. + The string to traverse. + The type of value. + + + + + Checks the next value. + + The position. + The string to check. + The value. + The type to search. + + + + + Gets the expression summary. + + + + + + Gets the expression set summary. + + The data. + + + + + Skips the white space. + + The i. + The s. + + + + + Finds the next white space. + + The i. + The s. + + + + + Adds to set. + + The val. + The end. + The incr. + The type. + + + + Gets the set of given type. + + The type of set to get. + + + + + Gets the value. + + The v. + The s. + The i. + - + - Returns the previous time at which the fired. - If the trigger has not yet fired, will be returned. + Gets the numeric value from string. + The string to parse from. + The i. + - + - Returns the next time at which the will fire, - after the given time. If the trigger will not fire after the given time, - will be returned. + Gets the month number. + The string to map with. + - + - Validates the misfire instruction. + Gets the day of week number. - The misfire instruction. + The s. - - - This method should not be used by the Quartz client. -

- To be implemented by the concrete classes that extend this class. -

-

- The implementation should update the 's state - based on the MISFIRE_INSTRUCTION_XXX that was selected when the - was created. -

+ + + Gets the time from given time parts. + The seconds. + The minutes. + The hours. + The day of month. + The month. + - - - This method should not be used by the Quartz client. -

- The implementation should update the 's state - based on the given new version of the associated - (the state should be updated so that it's next fire time is appropriate - given the Calendar's new settings). -

+ + + Gets the next fire time after the given time. - - + The UTC time to start searching from. + - + - Validates whether the properties of the are - valid for submission into a . + Creates the date time without milliseconds. + The time. + - + - Return a simple string representation of this object. + Advance the calendar to the particular hour paying particular attention + to daylight saving problems. + The date. + The hour. + - + - Compare the next fire time of this to that of - another. + Gets the time before. + The end time. + - + - Determines whether the specified is equal to the current . + NOT YET IMPLEMENTED: Returns the final time that the + will match. - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - + - + - Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table. + Determines whether given year is a leap year. + The year. - A hash code for the current . + true if the specified year is a leap year; otherwise, false. - + + + Gets the last day of month. + + The month num. + The year. + + + Creates a new object that is a copy of the current instance. @@ -13933,1263 +16640,1333 @@ A new object that is a copy of this instance. - - - Get or sets the name of this . - - If name is null or empty. - - + - Get the group of this . If , Scheduler.DefaultGroup will be used. + Determines whether the specified is equal to the current . - - if group is an empty string. - - - - - Get or set the name of the associated . - - - if jobName is null or empty. - + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . - + - Gets or sets the name of the associated 's - group. If set with , Scheduler.DefaultGroup will be used. + Determines whether the specified is equal to the current . - ArgumentException - if group is an empty string. - + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . - + - Returns the 'full name' of the in the format - "group.name". + Serves as a hash function for a particular type. + + A hash code for the current . + + 2 - + - Gets the key. + Sets or gets the time zone for which the of this + will be resolved. - The key. - + - Returns the 'full name' of the that the - points to, in the format "group.name". + Gets the cron expression string. + The cron expression string. - + - Get or set the description given to the instance by - its creator (if any). + Helper class for cron expression handling. - + - Get or set the with the given name with - this Trigger. Use when setting to dis-associate a Calendar. + The value. - + - Get or set the that is associated with the - . -

- Changes made to this map during job execution are not re-persisted, and - in fact typically result in an illegal state. -

+ The position.
- + - Whether or not the should be persisted in the - for re-use after program restarts. -

- If not explicitly set, the default value is . -

+ CronScheduleBuilder is a that defines + -based schedules for s.
+ + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + + Client code can then use the DSL to write code such as this: + + + 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); + + + + + + + +
- + - Returns an array of s containing the names of all - s assigned to the , - in the order in which they should be notified. + Build the actual Trigger -- NOT intended to be invoked by end users, + but will rather be invoked by a TriggerBuilder which this + ScheduleBuilder is given to. + - + - Returns the last UTC time at which the will fire, if - the Trigger will repeat indefinitely, null will be returned. -

- Note that the return time *may* be in the past. -

+ Create a CronScheduleBuilder with the given cron-expression - which + is presumed to b e valid cron expression (and hence only a RuntimeException + will be thrown if it is not).
+ + + the cron expression to base the schedule on. + the new CronScheduleBuilder +
- + - Get or set the instruction the should be given for - handling misfire situations for this - the - concrete type that you are using will have - defined a set of additional MISFIRE_INSTRUCTION_XXX - constants that may be passed to this method. -

- If not explicitly set, the default value is . -

-
- - - - -
- - - This method should not be used by the Quartz client. -

- Usable by - implementations, in order to facilitate 'recognizing' instances of fired - s as their jobs complete execution. -

+ Create a CronScheduleBuilder with the given cron-expression string - which + may not be a valid cron expression (and hence a ParseException will be thrown + f it is not).
+ the cron expression string to base the schedule on + the new CronScheduleBuilder +
- + - Returns the date/time on which the trigger must stop firing. This - defines the final boundary for trigger firings 舒 the trigger will - not fire after to this date and time. If this value is null, no end time - boundary is assumed, and the trigger can continue indefinitely. - - Sets the date/time on which the trigger must stop firing. This defines - the final boundary for trigger firings 舒 the trigger will not - fire after to this date and time. If this value is null, no end time - boundary is assumed, and the trigger can continue indefinitely. + Create a CronScheduleBuilder with the given cron-expression. + the cron expression to base the schedule on. + the new CronScheduleBuilder + - + - The time at which the trigger's scheduling should start. May or may not - be the first actual fire time of the trigger, depending upon the type of - trigger and the settings of the other properties of the trigger. However - the first actual first time will not be before this date. + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire every day at the given time (hour and minute). - Setting a value in the past may cause a new trigger to compute a first - fire time that is in the past, which may cause an immediate misfire - of the trigger. + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + - + - Tells whether this Trigger instance can handle events - in millisecond precision. + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire at the given day at the given time (hour and minute) on the given days of the week. + the hour of day to fire + the minute of the given hour to fire + the days of the week to fire + the new CronScheduleBuilder + - + - The priority of a acts as a tie breaker such that if - two s have the same scheduled fire time, then Quartz - will do its best to give the one with the higher priority first access - to a worker thread. + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire one per week on the given day at the given time + (hour and minute). - If not explicitly set, the default value is 5. - - + the day of the week to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + - + - Gets a value indicating whether this instance has additional properties - that should be considered when for example saving to database. + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire one per month on the given day of month at the given + time (hour and minute). - If trigger implementation has additional properties that need to be saved - with base properties you need to make your class override this property with value true. - Returning true will effectively mean that ADOJobStore needs to serialize - this trigger instance to make sure additional properties are also saved. - - true if this instance has additional properties; otherwise, false. - + the day of the month to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + - + - Create a with no settings. + The in which to base the schedule. - The start-time will also be set to the current time, and the time zone - will be set the the system's default time zone. + the time-zone for the schedule. + the updated CronScheduleBuilder + - + - Create a with the given name and default group. + If the Trigger misfires, use the + instruction. - The start-time will also be set to the current time, and the time zone - will be set the the system's default time zone. - The name. + the updated CronScheduleBuilder + - + - Create a with the given name and group. + If the Trigger misfires, use the + instruction. - The start-time will also be set to the current time, and the time zone - will be set the the system's default time zone. - The name. - The group. + the updated CronScheduleBuilder + - + - Create a with the given name, group and - expression. + If the Trigger misfires, use the + instruction. - The start-time will also be set to the current time, and the time zone - will be set the the system's default time zone. - The name. - The group. - The cron expression. + the updated CronScheduleBuilder + - + - Create a with the given name and group, and - associated with the identified . + Extension methods that attach to . - - The start-time will also be set to the current time, and the time zone - will be set the the system's default time zone. - - The name. - The group. - Name of the job. - The job group. - + - Create a with the given name and group, - associated with the identified , - and with the given "cron" expression. + A implementation that build schedule for DailyTimeIntervalTrigger. - The start-time will also be set to the current time, and the time zone - will be set the the system's default time zone. + + This builder provide an extra convenient method for you to set the trigger's EndTimeOfDay. You may + use either endingDailyAt() or EndingDailyAfterCount() to set the value. The later will auto calculate + your EndTimeOfDay by using the interval, IntervalUnit and StartTimeOfDay to perform the calculation. + + + When using EndingDailyAfterCount(), you should note that it is used to calculating EndTimeOfDay. So + if your startTime on the first day is already pass by a time that would not add up to the count you + expected, until the next day comes. Remember that DailyTimeIntervalTrigger will use StartTimeOfDay + and endTimeOfDay as fresh per each day! + + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + Client code can then use the DSL to write code such as this: + + 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); + - The name. - The group. - Name of the job. - The job group. - The cron expression. - - - - Create a with the given name and group, - associated with the identified , - and with the given "cron" expression resolved with respect to the . - - The name. - The group. - Name of the job. - The job group. - The cron expression. - The time zone. + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) - + - Create a that will occur at the given time, - until the given end time. -

- If null, the start-time will also be set to the current time, the time - zone will be set the the system's default. -

+ A set of all days of the week.
- The name. - The group. - Name of the job. - The job group. - The start time. - The end time. - The cron expression. + + The set contains all values between and +
- + - Create a with fire time dictated by the - resolved with respect to the specified - occuring from the until - the given . + A set of the business days of the week (for locales similar to the USA). - The name. - The group. - Name of the job. - The job group. - The start time. - The end time. + + The set contains all values between and + - + - Clones this instance. + A set of the weekend days of the week (for locales similar to the USA). - - - - - Returns the next time at which the is scheduled to fire. If - the trigger will not fire again, will be returned. Note that - the time returned can possibly be in the past, if the time that was computed - for the trigger to next fire has already arrived, but the scheduler has not yet - been able to fire the trigger (which would likely be due to lack of resources - e.g. threads). - - The value returned is not guaranteed to be valid until after the - has been added to the scheduler. - - - + The set contains and + - + - Returns the previous time at which the fired. - If the trigger has not yet fired, will be returned. + Create a DailyTimeIntervalScheduleBuilder - + The new DailyTimeIntervalScheduleBuilder - + - Sets the next fire time. -

- This method should not be invoked by client code. -

+ Build the actual Trigger -- NOT intended to be invoked by end users, + but will rather be invoked by a TriggerBuilder which this + ScheduleBuilder is given to.
- The fire time. +
- + - Sets the previous fire time. -

- This method should not be invoked by client code. -

+ Specify the time unit and interval for the Trigger to be produced.
- The fire time. + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + +
- + - Returns the next time at which the will fire, - after the given time. If the trigger will not fire after the given time, - will be returned. + Specify an interval in the IntervalUnit.Second that the produced + Trigger will repeat at. - - + The number of seconds at which the trigger should repeat. + the updated DailyTimeIntervalScheduleBuilder> + + - + - Used by the to determine whether or not - it is possible for this to fire again. -

- If the returned value is then the - may remove the from the . -

+ Specify an interval in the IntervalUnit.Minute that the produced + Trigger will repeat at.
- + The number of minutes at which the trigger should repeat. + the updated DailyTimeIntervalScheduleBuilder> + +
- + - Validates the misfire instruction. + Specify an interval in the IntervalUnit.Hour that the produced + Trigger will repeat at. - The misfire instruction. - + The number of hours at which the trigger should repeat. + the updated DailyTimeIntervalScheduleBuilder> + + - + - This method should not be used by the Quartz client. -

- To be implemented by the concrete classes that extend this class. -

-

- The implementation should update the 's state - based on the MISFIRE_INSTRUCTION_XXX that was selected when the - was created. -

+ Set the trigger to fire on the given days of the week.
- + a Set containing the integers representing the days of the week, defined by - . + + the updated DailyTimeIntervalScheduleBuilder
- + -

- Determines whether the date and (optionally) time of the given Calendar - instance falls on a scheduled fire-time of this trigger. -

- -

- Equivalent to calling . -

+ Set the trigger to fire on the given days of the week.
- The date to compare. - + a variable length list of week days representing the days of the week + the updated DailyTimeIntervalScheduleBuilder
- + - Determines whether the date and (optionally) time of the given Calendar - instance falls on a scheduled fire-time of this trigger. -

- Note that the value returned is NOT validated against the related - ICalendar (if any). -

+ Set the trigger to fire on the days from Monday through Friday.
- The date to compare - If set to true, the method will only determine if the - trigger will fire during the day represented by the given Calendar - (hours, minutes and seconds will be ignored). - + the updated DailyTimeIntervalScheduleBuilder
- + - Called when the has decided to 'fire' - the trigger (Execute the associated ), in order to - give the a chance to update itself for its next - triggering (if any). + Set the trigger to fire on the days Saturday and Sunday. - - + the updated DailyTimeIntervalScheduleBuilder - + - Updates the trigger with new calendar. + Set the trigger to fire on all days of the week. - The calendar to update with. - The misfire threshold. + the updated DailyTimeIntervalScheduleBuilder - + - Called by the scheduler at the time a is first - added to the scheduler, in order to have the - compute its first fire time, based on any associated calendar. -

- After this method has been called, - should return a valid answer. -

+ Set the trigger to begin firing each day at the given time.
- - - the first time at which the will be fired - by the scheduler, which is also the same value - will return (until after the first firing of the ). - + + the updated DailyTimeIntervalScheduleBuilder
- + - Gets the expression summary. + Set the startTimeOfDay for this trigger to end firing each day at the given time. - + + the updated DailyTimeIntervalScheduleBuilder - + - Gets the next time to fire after the given time. + Calculate and set the EndTimeOfDay using count, interval and StarTimeOfDay. This means + that these must be set before this method is call. - The time to compute from. - + + the updated DailyTimeIntervalScheduleBuilder - + - NOT YET IMPLEMENTED: Returns the time before the given time - that this will fire. + If the Trigger misfires, use the + instruction. - The date. - + the updated DailyTimeIntervalScheduleBuilder + - + - Gets or sets the cron expression string. + If the Trigger misfires, use the + instruction. - The cron expression string. + the updated DailyTimeIntervalScheduleBuilder + - + - Set the CronExpression to the given one. The TimeZone on the passed-in - CronExpression over-rides any that was already set on the Trigger. + If the Trigger misfires, use the + instruction. - The cron expression. + the updated DailyTimeIntervalScheduleBuilder + - + - Returns the date/time on which the trigger may begin firing. This - defines the initial boundary for trigger firings the trigger - will not fire prior to this date and time. + Set number of times for interval to repeat. - + + Note: if you want total count = 1 (at start time) + repeatCount + + + - + - Get or sets the time at which the CronTrigger should quit - repeating - even if repeastCount isn't yet satisfied. + Extension methods that attach to . - + - Sets the time zone for which the of this - will be resolved. + DateBuilder is used to conveniently create + instances that meet particular criteria. - If is set after this - property, the TimeZone setting on the CronExpression will "win". However - if is set after this property, the - time zone applied by this method will remain in effect, since the - string cron expression does not carry a time zone! + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + Client code can then use the DSL to write code such as this: + + 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); + - The time zone. + + - + - Returns the last UTC time at which the will fire, if - the Trigger will repeat indefinitely, null will be returned. -

- Note that the return time *may* be in the past. -

+ Create a DateBuilder, with initial settings for the current date + and time in the system default timezone.
- + - Tells whether this Trigger instance can handle events - in millisecond precision. + Create a DateBuilder, with initial settings for the current date and time in the given timezone. - + - + - The interface to be implemented by s that provide a - mechanism for having their execution interrupted. It is NOT a requirment - for jobs to implement this interface - in fact, for most people, none of - their jobs will. + Create a DateBuilder, with initial settings for the current date and time in the system default timezone. - -

- The means of actually interrupting the Job must be implemented within the - itself (the method of this - interface is simply a means for the scheduler to inform the - that a request has been made for it to be interrupted). The mechanism that - your jobs use to interrupt themselves might vary between implementations. - However the principle idea in any implementation should be to have the - body of the job's periodically check some flag to - see if an interruption has been requested, and if the flag is set, somehow - abort the performance of the rest of the job's work. An example of - interrupting a job can be found in the java source for the class - Quartz.Examples.Example7.DumbInterruptableJob. It is legal to use - some combination of and - synchronization within and - in order to have the method block until the - signals that it has noticed the set flag. -

- -

- If the Job performs some form of blocking I/O or similar functions, you may - want to consider having the method store a - reference to the calling as a member variable. Then the - impplementation of this interfaces method can call - on that Thread. Before attempting this, make - sure that you fully understand what - does and doesn't do. Also make sure that you clear the Job's member - reference to the Thread when the Execute(..) method exits (preferrably in a - block. -

-
- - - James House +
- + - Called by the when a user - interrupts the . + Create a DateBuilder, with initial settings for the current date and time in the given timezone. - void (nothing) if job interrupt is successful. + Time zone to use. + - + - Scheduler constants. + Build the defined by this builder instance. + New date time based on builder parameters. - + - A (possibly) usefull constant that can be used for specifying the group - that and instances belong to. + Set the hour (0-23) for the Date that will be built by this builder. + + - + - A constant group name used internally by the - scheduler - clients should not use the value of this constant - ("MANUAL_TRIGGER") for thename of a 's group. + Set the minute (0-59) for the Date that will be built by this builder. + + - + - A constant group name used internally by the - scheduler - clients should not use the value of this constant - ("RECOVERING_JOBS") for thename of a 's group. + Set the second (0-59) for the Date that will be built by this builder, and truncate the milliseconds to 000. + + - + - A constant group name used internally by the - scheduler - clients should not use the value of this constant - ("FAILED_OVER_JOBS") for thename of a 's group. + Set the day of month (1-31) for the Date that will be built by this builder. + + - + - A constant key that can be used to retrieve the - name of the original from a recovery trigger's - data map in the case of a job recovering after a failed scheduler - instance. + Set the month (1-12) for the Date that will be built by this builder. - + + - + - A constant key that can be used to retrieve the - group of the original from a recovery trigger's - data map in the case of a job recovering after a failed scheduler - instance. + Set the year for the Date that will be built by this builder. - + + - + - A constant key that can be used to retrieve the - scheduled fire time of the original from a recovery - trigger's data map in the case of a job recovering after a failed scheduler - instance. + Set the TimeZoneInfo for the Date that will be built by this builder (if "null", system default will be used) - + + - + - Holds state information for instances. + Get a object that represents the given time, on + tomorrow's date. - - instances are stored once when the - is added to a scheduler. They are also re-persisted after every execution of - instances. -

- instances can also be stored with a - . This can be useful in the case where you have a Job - that is stored in the scheduler for regular/repeated use by multiple - Triggers, yet with each independent triggering, you want to supply the - Job with different data inputs. -

-

- The passed to a Job at execution time - also contains a convenience that is the result - of merging the contents of the trigger's JobDataMap (if any) over the - Job's JobDataMap (if any). -

-
- - - - - James House + + + +
- + - Create an empty . + Get a object that represents the given time, on + today's date (equivalent to . + + + + - - - Create a with the given data. + + + Get a object that represents the given time, on today's date. + The value (0-59) to give the seconds field of the date + The value (0-59) to give the minutes field of the date + The value (0-23) to give the hours field of the date + the new date - + - Adds the given value as a string version to the - 's data map. + Get a object that represents the given time, on the + given date. + The value (0-59) to give the seconds field of the date + The value (0-59) to give the minutes field of the date + The value (0-23) to give the hours field of the date + The value (1-31) to give the day of month field of the date + The value (1-12) to give the month field of the date + the new date - + - Adds the given value as a string version to the - 's data map. + Get a object that represents the given time, on the + given date. + + + The value (0-59) to give the seconds field of the date + The value (0-59) to give the minutes field of the date + The value (0-23) to give the hours field of the date + The value (1-31) to give the day of month field of the date + The value (1-12) to give the month field of the date + The value (1970-2099) to give the year field of the date + the new date - + - Adds the given value as a string version to the - 's data map. + Returns a date that is rounded to the next even hour after the current time. + + For example a current time of 08:13:54 would result in a date + with the time of 09:00:00. If the date's time is in the 23rd hour, the + date's 'day' will be promoted, and the time will be set to 00:00:00. + + the new rounded date - + - Adds the given value as a string version to the - 's data map. + Returns a date that is rounded to the next even hour above the given date. + + For example an input date with a time of 08:13:54 would result in a date + with the time of 09:00:00. If the date's time is in the 23rd hour, the + date's 'day' will be promoted, and the time will be set to 00:00:00. + + the Date to round, if the current time will + be used + the new rounded date - + - Adds the given value as a string version to the - 's data map. + Returns a date that is rounded to the previous even hour below the given date. + + For example an input date with a time of 08:13:54 would result in a date + with the time of 08:00:00. + + the Date to round, if the current time will + be used + the new rounded date - + - Adds the given value as a string version to the - 's data map. + + Returns a date that is rounded to the next even minute after the current time. + + + For example a current time of 08:13:54 would result in a date + with the time of 08:14:00. If the date's time is in the 59th minute, + then the hour (and possibly the day) will be promoted. + + the new rounded date - + - Retrieve the identified value from the . + Returns a date that is rounded to the next even minute above the given date. + + For example an input date with a time of 08:13:54 would result in a date + with the time of 08:14:00. If the date's time is in the 59th minute, + then the hour (and possibly the day) will be promoted. + + The Date to round, if the current time will be used + The new rounded date - + - Retrieve the identified value from the . + Returns a date that is rounded to the previous even minute below the given date. + + For example an input date with a time of 08:13:54 would result in a date + with the time of 08:13:00. + + the Date to round, if the current time will + be used + the new rounded date - + - Retrieve the identified value from the . + Returns a date that is rounded to the next even second after the current time. + the new rounded date - + - Retrieve the identified value from the . + Returns a date that is rounded to the next even second above the given date. + + the Date to round, if the current time will + be used + the new rounded date - + - Retrieve the identified value from the - . + Returns a date that is rounded to the previous even second below the + given date. + + + For example an input date with a time of 08:13:54.341 would result in a + date with the time of 08:13:00.000. + + + + the Date to round, if the current time will + be used + the new rounded date - + - Retrieve the identified value from the . + Returns a date that is rounded to the next even multiple of the given + minute. + + + For example an input date with a time of 08:13:54, and an input + minute-base of 5 would result in a date with the time of 08:15:00. The + same input date with an input minute-base of 10 would result in a date + with the time of 08:20:00. But a date with the time 08:53:31 and an + input minute-base of 45 would result in 09:00:00, because the even-hour + is the next 'base' for 45-minute intervals. + + + More examples: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input TimeMinute-BaseResult Time
11:16:412011:20:00
11:36:412011:40:00
11:46:412012:00:00
11:26:413011:30:00
11:36:413012:00:00
11:16:411711:17:00
11:17:411711:34:00
11:52:411712:00:00
11:52:41511:55:00
11:57:41512:00:00
11:17:41012:00:00
11:17:41111:08:00
+
+
+ + the Date to round, if the current time will + be used + + the base-minute to set the time on + the new rounded date +
- + - Retrieve the identified value from the . + Returns a date that is rounded to the next even multiple of the given + minute. + + The rules for calculating the second are the same as those for + calculating the minute in the method . + + the Date to round, if the current time will + be used + the base-second to set the time on + the new rounded date + - + - Retrieve the identified value from the . + An attribute that marks a class as one that must not have multiple + instances executed concurrently (where instance is based-upon a + definition - or in other words based upon a . + + This can be used in lieu of implementing the StatefulJob marker interface that + was used prior to Quartz 2.0 + + + James House + Marko Lahma (.NET) - + - Retrieve the identified value from the . + The interface to be implemented by s that provide a + mechanism for having their execution interrupted. It is NOT a requirement + for jobs to implement this interface - in fact, for most people, none of + their jobs will. + + + The means of actually interrupting the Job must be implemented within the + itself (the method of this + interface is simply a means for the scheduler to inform the + that a request has been made for it to be interrupted). The mechanism that + your jobs use to interrupt themselves might vary between implementations. + However the principle idea in any implementation should be to have the + body of the job's periodically check some flag to + see if an interruption has been requested, and if the flag is set, somehow + abort the performance of the rest of the job's work. An example of + interrupting a job can be found in the java source for the class + . It is legal to use + some combination of and + synchronization within and + in order to have the method block until the + signals that it has noticed the set flag. + + + + If the Job performs some form of blocking I/O or similar functions, you may + want to consider having the method store a + reference to the calling as a member variable. Then the + implementation of this interfaces method can call + on that Thread. Before attempting this, make + sure that you fully understand what + does and doesn't do. Also make sure that you clear the Job's member + reference to the Thread when the Execute(..) method exits (preferably in a + block. + + + + + + James House + Marko Lahma (.NET) - + - Retrieve the identified value from the . + Called by the when a user + interrupts the . + void (nothing) if job interrupt is successful. - + - Retrieve the identified value from the . + Supported interval units used by . - + - Retrieve the identified value from the . + A marker interface for s that + wish to have their state maintained between executions. + + instances follow slightly different rules from + regular instances. The key difference is that their + associated is re-persisted after every + execution of the job, thus preserving state for the next execution. The + other difference is that stateful jobs are not allowed to Execute + concurrently, which means new triggers that occur before the completion of + the method will be delayed. + + + + + + + + James House + Marko Lahma (.NET) - + - Retrieve the identified value from the . + JobBuilder is used to instantiate s. + + + The builder will always try to keep itself in a valid state, with + reasonable defaults set for calling Build() at any point. For instance + if you do not invoke WithIdentity(..) a job name will be generated + for you. + + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + + Client code can then use the DSL to write code such as this: + + + 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); + + + + + - + - Retrieve the identified value from the . + Create a JobBuilder with which to define a . + a new JobBuilder - + - Retrieve the identified value from the . + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + a new JobBuilder - + - Gets the date time. + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. - The key. - + a new JobBuilder - + - Gets the value behind the specified key. + Produce the instance defined by this JobBuilder. - The key. - + the defined JobDetail. - + - Conveys the detail properties of a given instance. + Use a with the given name and default group to + identify the JobDetail. - Quartz does not store an actual instance of a type, but - instead allows you to define an instance of one, through the use of a . -

- s have a name and group associated with them, which - should uniquely identify them within a single . -

-

- s are the 'mechanism' by which s - are scheduled. Many s can point to the same , - but a single can only point to one . -

+ If none of the 'withIdentity' methods are set on the JobBuilder, + then a random, unique JobKey will be generated.
- - - - - James House - Sharada Jambula + the name element for the Job's JobKey + the updated JobBuilder + +
- + - Create a with no specified name or group, and - the default settings of all the other properties. -

- Note that the , and - properties must be set before the job can be - placed into a . -

+ Use a with the given name and group to + identify the JobDetail.
+ + If none of the 'withIdentity' methods are set on the JobBuilder, + then a random, unique JobKey will be generated. + + the name element for the Job's JobKey + the group element for the Job's JobKey + the updated JobBuilder + +
- + - Create a with the given name, default group, and - the default settings of all the other properties. - If , Scheduler.DefaultGroup will be used. + Use a to identify the JobDetail. - - If name is null or empty, or the group is an empty string. - + + If none of the 'withIdentity' methods are set on the JobBuilder, + then a random, unique JobKey will be generated. + + the Job's JobKey + the updated JobBuilder + + - + - Create a with the given name, and group, and - the default settings of all the other properties. - If , Scheduler.DefaultGroup will be used. + Set the given (human-meaningful) description of the Job. - - If name is null or empty, or the group is an empty string. - + the description for the Job + the updated JobBuilder + - + - Create a with the given name, and group, and - the given settings of all the other properties. - - The name. - if , Scheduler.DefaultGroup will be used. - Type of the job. - if set to true, job will be volatile. - if set to true, job will be durable. - if set to true, job will request recovery. - - ArgumentException if name is null or empty, or the group is an empty string. - - - - - Validates whether the properties of the are - valid for submission into a . + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + the updated JobBuilder + - + - Add the specified name of a to the - end of the 's list of listeners. + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + the updated JobBuilder + - + - Remove the specified name of a from - the 's list of listeners. + Instructs the whether or not the job + should be re-executed if a 'recovery' or 'fail-over' situation is + encountered. - true if the given name was found in the list, and removed + + If not explicitly set, the default value is . + + the updated JobBuilder + - + - Return a simple string representation of this object. + Instructs the whether or not the job + should be re-executed if a 'recovery' or 'fail-over' situation is + encountered. + + If not explicitly set, the default value is . + + + the updated JobBuilder - + - Creates a new object that is a copy of the current instance. + Whether or not the job should remain stored after it is + orphaned (no s point to it). - - A new object that is a copy of this instance. - + + If not explicitly set, the default value is . + + the updated JobBuilder + - - - Determines whether the specified detail is equal to this instance. - - The detail to examine. - - true if the specified detail is equal; otherwise, false. - + + + Whether or not the job should remain stored after it is + orphaned (no s point to it). + + + If not explicitly set, the default value is . + + the value to set for the durability property. + the updated JobBuilder + - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - if the specified is equal to the - current ; otherwise, . - + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + - - - Checks equality between given job detail and this instance. - - The detail to compare this instance with. - + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + - - - Serves as a hash function for a particular type, suitable - for use in hashing algorithms and data structures like a hash table. - - - A hash code for the current . - + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + - - - Get or sets the name of this . - - - if name is null or empty. - + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + - - - Get or sets the group of this . - If , will be used. - - - If the group is an empty string. - + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + - - - Returns the 'full name' of the in the format - "group.name". - + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + - - - Gets the key. - - The key. + + + Set the JobDetail's , adding any values to it + that were already set on this JobBuilder using any of the + other 'usingJobData' methods. + + the updated JobBuilder + - + - Get or set the description given to the instance by its - creator (if any). + Holds state information for instances. - May be useful for remembering/displaying the purpose of the job, though the - description has no meaning to Quartz. + instances are stored once when the + is added to a scheduler. They are also re-persisted after every execution of + instances that have present. + + instances can also be stored with a + . This can be useful in the case where you have a Job + that is stored in the scheduler for regular/repeated use by multiple + Triggers, yet with each independent triggering, you want to supply the + Job with different data inputs. + + + The passed to a Job at execution time + also contains a convenience that is the result + of merging the contents of the trigger's JobDataMap (if any) over the + Job's JobDataMap (if any). + + + + + + James House + Marko Lahma (.NET) - + - Get or sets the instance of that will be executed. + Create an empty . - - if jobType is null or the class is not a . - - - - Get or set the that is associated with the . + + + Create a with the given data. - - - Set whether or not the the should re-Execute - the if a 'recovery' or 'fail-over' situation is - encountered. -

- If not explicitly set, the default value is . -

+ + + Create a with the given data. - - + - Whether or not the should not be persisted in the - for re-use after program - restarts. -

- If not explicitly set, the default value is . -

+ Serialization constructor.
- if the should be garbage - collected along with the . - + +
- + - Whether or not the should remain stored after it is - orphaned (no s point to it). -

- If not explicitly set, the default value is . -

+ Adds the given value as a string version to the + 's data map.
- - if the Job should remain persisted after - being orphaned. -
- + - Whether or not the implements the interface . + Adds the given value as a string version to the + 's data map. - + - Gets or sets an array of s containing the names of all - s assigned to the , - in the order in which they should be notified. Setting the array - clears any listener names that were in the list. + Adds the given value as a string version to the + 's data map. - + - A context bundle containing handles to various environment information, that - is given to a instance as it is - executed, and to a instance after the - execution completes. + Adds the given value as a string version to the + 's data map. - -

- The found on this object (via the - method) serves as a convenience - - it is a merge of the found on the - and the one found on the , with - the value in the latter overriding any same-named values in the former. - It is thus considered a 'best practice' that the Execute code of a Job - retrieve data from the JobDataMap found on this object NOTE: Do not - expect value 'set' into this JobDataMap to somehow be set back onto a - 's own JobDataMap. -

- -

- s are also returned from the - - method. These are the same instances as those past into the jobs that are - currently executing within the scheduler. The exception to this is when your - application is using Quartz remotely (i.e. via RMI) - in which case you get - a clone of the s, and their references to - the and instances have been lost (a - clone of the is still available - just not a handle - to the job instance that is running). -

-
- - - - - - James House
- + - Create a JobExcecutionContext with the given context data. + Adds the given value as a string version to the + 's data map. - + - Increments the refire count. + Adds the given value as a string version to the + 's data map. - + - Returns a that represents the current . + Retrieve the identified value from the . - - A that represents the current . - - - - Put the specified value into the context's data map with the given key. - Possibly useful for sharing data between listeners and jobs. -

- NOTE: this data is volatile - it is lost after the job execution - completes, and all TriggerListeners and JobListeners have been - notified. -

+ + + Retrieve the identified value from the . - - - - - - - Get the value with the given key from the context's data map. + + + Retrieve the identified value from the . - - - + - Get a handle to the instance that fired the - . + Retrieve the identified value from the . - + - Get a handle to the instance that fired the - . + Retrieve the identified value from the + . - + - Get a handle to the referenced by the - instance that fired the . + Retrieve the identified value from the . - + - If the is being re-executed because of a 'recovery' - situation, this method will return . + Retrieve the identified value from the . - + - Gets the refire count. + Retrieve the identified value from the . - The refire count. - + - Get the convenience of this execution context. + Retrieve the identified value from the . - -

- The found on this object serves as a convenience - - it is a merge of the found on the - and the one found on the , with - the value in the latter overriding any same-named values in the former. - It is thus considered a 'best practice' that the Execute code of a Job - retrieve data from the JobDataMap found on this object. -

- -

NOTE: Do not expect value 'set' into this JobDataMap to somehow be - set back onto a 's own JobDataMap. -

- -

- Attempts to change the contents of this map typically result in an - illegal state. -

- -
- + - Get the associated with the . + Retrieve the identified value from the . - + - Get the instance of the that was created for this - execution. -

- Note: The Job instance is not available through remote scheduler - interfaces. -

+ Retrieve the identified value from the .
- + - The actual time the trigger fired. For instance the scheduled time may - have been 10:00:00 but the actual fire time may have been 10:00:03 if - the scheduler was too busy. + Retrieve the identified value from the . - Returns the fireTimeUtc. - - - - The scheduled time the trigger fired for. For instance the scheduled - time may have been 10:00:00 but the actual fire time may have been - 10:00:03 if the scheduler was too busy. + + + Retrieve the identified value from the . - Returns the scheduledFireTimeUtc. - - + - Gets the previous fire time. + Retrieve the identified value from the . - The previous fire time. - + - Gets the next fire time. + Retrieve the identified value from the . - The next fire time. - + - Returns the result (if any) that the set before its - execution completed (the type of object set as the result is entirely up - to the particular job). + Gets the date time. - -

- The result itself is meaningless to Quartz, but may be informative - to s or - s that are watching the job's - execution. -

- - Set the result (if any) of the 's execution (the type of - object set as the result is entirely up to the particular job). - -

- The result itself is meaningless to Quartz, but may be informative - to s or - s that are watching the job's - execution. -

-
+ The key. +
- - - The amount of time the job ran for. The returned - value will be until the job has actually completed (or thrown an - exception), and is therefore generally only useful to - s and s. + + + Gets the value behind the specified key. + The key. + An exception that can be thrown by a to indicate to the Quartz that an error - occured while executing, and whether or not the requests - to be re-fired immediately (using the same , + occurred while executing, and whether or not the requests + to be re-fired immediately (using the same , or whether it wants to be unscheduled. @@ -15197,9 +17974,10 @@ unscheduling the Job are ignored. - + James House + Marko Lahma (.NET) @@ -15283,10 +18061,45 @@ true if to refire immediately; otherwise, false. + + + Uniquely identifies a . + + + Keys are composed of both a name and group, and the name must be unique + within the group. If only a group is specified then the default group + name will be used. + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + Client code can then use the DSL to write code such as this: + + 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); + + + + + Misfire instructions. + Marko Lahma (.NET) @@ -15298,6 +18111,22 @@ Use smart policy. + + + Instructs the that the + will never be evaluated for a misfire situation, + and that the scheduler will simply try to fire it as soon as it can, + and then update the Trigger as if it had fired at the proper time. + + + NOTE: if a trigger uses this instruction, and it has missed + several of its scheduled firings, then several rapid firings may occur + as the trigger attempt to catch back up to where it would have been. + For example, a SimpleTrigger that fires every 15 seconds which has + misfired for 5 minutes will fire 20 times once it gets the chance to + fire. + + Misfire policy settings for SimpleTrigger. @@ -15306,87 +18135,87 @@ Instructs the that upon a mis-fire - situation, the wants to be fired + situation, the wants to be fired now by . -

+ NOTE: This instruction should typically only be used for 'one-shot' (non-repeating) Triggers. If it is used on a trigger with a repeat count > 0 then it is equivalent to the instruction . -

+
Instructs the that upon a mis-fire - situation, the wants to be + situation, the wants to be re-scheduled to 'now' (even if the associated excludes 'now') with the repeat count left as-is. This does obey the - end-time however, so if 'now' is after the - end-time the will not fire again. + end-time however, so if 'now' is after the + end-time the will not fire again. -

+ NOTE: Use of this instruction causes the trigger to 'forget' the start-time and repeat-count that it was originally setup with (this is only an issue if you for some reason wanted to be able to tell what the original values were at some later time). -

+
Instructs the that upon a mis-fire - situation, the wants to be + situation, the wants to be re-scheduled to 'now' (even if the associated excludes 'now') with the repeat count set to what it would be, if it had - not missed any firings. This does obey the end-time - however, so if 'now' is after the end-time the will + not missed any firings. This does obey the end-time + however, so if 'now' is after the end-time the will not fire again. -

+ NOTE: Use of this instruction causes the trigger to 'forget' the start-time and repeat-count that it was originally setup with. Instead, the repeat count on the trigger will be changed to whatever the remaining repeat count is (this is only an issue if you for some reason wanted to be able to tell what the original values were at some later time). -

+ -

- NOTE: This instruction could cause the + + NOTE: This instruction could cause the to go to the 'COMPLETE' state after firing 'now', if all the repeat-fire-times where missed. -

+
Instructs the that upon a mis-fire - situation, the wants to be + situation, the wants to be re-scheduled to the next scheduled time after 'now' - taking into account any associated , and with the repeat count set to what it would be, if it had not missed any firings. - NOTE/WARNING: This instruction could cause the + NOTE/WARNING: This instruction could cause the to go directly to the 'COMPLETE' state if all fire-times where missed. Instructs the that upon a mis-fire - situation, the wants to be + situation, the wants to be re-scheduled to the next scheduled time after 'now' - taking into account any associated , and with the repeat count left unchanged. -

- NOTE/WARNING: This instruction could cause the + + NOTE/WARNING: This instruction could cause the to go directly to the 'COMPLETE' state if all the end-time of the trigger has arrived. -

+
@@ -15397,14 +18226,14 @@ Instructs the that upon a mis-fire - situation, the wants to be fired now + situation, the wants to be fired now by . Instructs the that upon a mis-fire - situation, the wants to have it's + situation, the wants to have it's next-fire-time updated to the next time in the schedule after the current time (taking into account any associated , but it does not want to be fired now. @@ -15430,6 +18259,48 @@ the current time, but it does not want to be fired now. + + + Misfire instructions for DateIntervalTrigger + + + + + Instructs the that upon a mis-fire + situation, the wants to be + fired now by . + + + + + Instructs the that upon a mis-fire + situation, the wants to have it's + next-fire-time updated to the next time in the schedule after the + current time (taking into account any associated , + but it does not want to be fired now. + + + + + Misfire instructions for DailyTimeIntervalTrigger + + + + + Instructs the that upon a mis-fire + situation, the wants to be + fired now by . + + + + + Instructs the that upon a mis-fire + situation, the wants to have it's + next-fire-time updated to the next time in the schedule after the + current time (taking into account any associated , + but it does not want to be fired now. + + A trigger which fires on the Nth day of every interval type @@ -15446,7 +18317,7 @@ every month). Each also has an associated which indicates at what time of day the trigger is to fire. -

+ All s default to a monthly interval type (fires on the Nth day of every month) with N = 1 (first non-excluded day) and set to 12:00 PM (noon). These @@ -15454,10 +18325,10 @@ methods. Users may also want to note the and methods. -

-

+ + Take, for example, the following calendar: -

+ July August September Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa @@ -15477,6 +18348,7 @@ of Labor Day). Aaron Craven + Marko Lahma (.NET) @@ -15506,15 +18378,14 @@ Create an with no specified name, - group, or . This will result initially in a + group, or . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (n = 1, intervalType=, fireAtTime="12:00"). - Note that , , - , and , must be + Note that and , must be called before the can be placed into a . @@ -15522,32 +18393,33 @@ Create an with the given name and - default group but no specified . This will result + default group but no specified . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (=1, intervalType=, fireAtTime=12:00"). -

- Note that and must + + Note that must be called before the can be placed into a . -

+
- the name for the + the name for the +
Create an with the given name and - group but no specified . This will result + group but no specified . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (=1, intervalType=, fireAtTime=12:00"). -

- Note that and must + + Note that must be called before the can be placed into a . -

+
the name for the @@ -15557,7 +18429,7 @@ Create an with the given name and - group and the specified . This will result + group and the specified . This will result initially in a default monthly trigger that fires on the first day of every month at 12:00 PM (=1, intervalType=, @@ -15575,18 +18447,18 @@ returned. -

+ Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the property. The default cutoff is 12 of the intervals specified by intervalType. -

-

+ + The returned value is not guaranteed to be valid until after the trigger has been added to the scheduler. -

+
the next fire time for the trigger @@ -15599,21 +18471,21 @@
the previous fire time for the trigger
- + Returns the first time the will fire after the specified date. -

+ Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the property. The default cutoff is 12 of the intervals specified by intervalType. -

-

+ + Therefore, for triggers with intervalType = , if the trigger will not fire within 12 @@ -15628,7 +18500,7 @@ years after the given date/time, will be returned. In all cases, if the trigger will not fire before , will be returned. -

+
The time after which to find the nearest fire time. This argument is treated as exclusive 舒 that is, @@ -15643,36 +18515,36 @@ Called when the has decided to 'fire' the trigger (Execute the associated ), in order to give the - a chance to update itself for its next triggering + a chance to update itself for its next triggering (if any).
- Called by the scheduler at the time a is first - added to the scheduler, in order to have the + Called by the scheduler at the time a is first + added to the scheduler, in order to have the compute its first fire time, based on any associated calendar. -

+ After this method has been called, should return a valid answer. -

+
- the first time at which the will be fired + the first time at which the will be fired by the scheduler, which is also the same value will return (until after the first - firing of the ). + firing of the ).
- + Called after the has executed the - associated with the in order + associated with the in order to get the final instruction code from the trigger. - The that was used by the - 's method. + The that was used by the + 's method. The thrown by the @@ -15684,14 +18556,14 @@ Used by the to determine whether or not it is - possible for this to fire again. + possible for this to fire again. ' -

+ If the returned value is then the - may remove the from the + may remove the from the -

+
A boolean indicator of whether the trigger could potentially fire @@ -15701,7 +18573,7 @@ Indicates whether is a valid misfire - instruction for this . + instruction for this . Whether is valid. @@ -15729,7 +18601,7 @@ firing of the trigger is supposed to occur.
- + Calculates the first time an with intervalType = IntervalTypeWeekly will fire @@ -15745,7 +18617,7 @@ date - + Calculates the first UTC time an with intervalType = will fire @@ -15760,7 +18632,7 @@ the first time the trigger will fire following the specified date - + Calculates the first time an with intervalType = will fire @@ -15777,6 +18649,14 @@ date + + + Get a that is configured to produce a + schedule identical to this trigger's schedule. + + + + Gets or sets the day of the interval on which the @@ -15817,35 +18697,35 @@ . -

+ Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the property. The default cutoff is 12 of the intervals specified by intervalType" />. -

-

+ + Because of the conceptual design of , it is not always possible to decide with certainty that the trigger will never fire again. Therefore, it will search for the next fire time up to a given cutoff. These cutoffs can be changed by using the method. The default cutoff is 12 of the intervals specified by intervalType". -

-

+ + In most cases, the default value of this setting (12) is sufficient (it is highly unlikely, for example, that you will need to look at more than 12 months of dates to ensure that your trigger will never fire again). However, this setting is included to allow for the rare exceptions where this might not be true. -

-

+ + For example, if your trigger is associated with a calendar that excludes a great many dates in the next 12 months, and hardly any following that, it is possible (if is large enough) that you could run into this situation. -

+
@@ -15886,17 +18766,18 @@ An exception that is thrown to indicate that an attempt to store a new - object (i.e. , + object (i.e. , or ) in a failed, because one with the same name and group already exists. James House + Marko Lahma (.NET) -

+

Create a with the given message. -

+
@@ -15908,30 +18789,51 @@ The class name is null or is zero (0). The info parameter is null. - -

+ +

Create a and auto-generate a - message using the name/group from the given . -

+ message using the name/group from the given . +
-

+ The message will read:
"Unable to store Job with name: '__' and group: '__', because one already exists with this identification." -

+
- -

+ +

Create a and auto-generate a - message using the name/group from the given . -

+ message using the name/group from the given . +
-

+ The message will read:
"Unable to store Trigger with name: '__' and group: '__', because one already exists with this identification." -

+
+ + + An attribute that marks a class as one that makes updates to its + during execution, and wishes the scheduler to re-store the + when execution completes. + + + + Jobs that are marked with this annotation should also seriously consider + using the attribute, to avoid data + storage race conditions with concurrently executing job instances. + + + This can be used in lieu of implementing the StatefulJob marker interface that + was used prior to Quartz 2.0 + + + + James House + Marko Lahma (.NET) + An exception that is thrown to indicate that there is a misconfiguration of @@ -15939,6 +18841,7 @@ configures. James House + Marko Lahma (.NET) @@ -15960,73 +18863,140 @@ The class name is null or is zero (0). The info parameter is null. + + + Scheduler constants. + + Marko Lahma (.NET) + + + + A (possibly) useful constant that can be used for specifying the group + that and instances belong to. + + + + + A constant group name used internally by the + scheduler - clients should not use the value of this constant + ("RECOVERING_JOBS") for thename of a 's group. + + + + + A constant group name used internally by the + scheduler - clients should not use the value of this constant + ("FAILED_OVER_JOBS") for thename of a 's group. + + + + + A constant key that can be used to retrieve the + name of the original from a recovery trigger's + data map in the case of a job recovering after a failed scheduler + instance. + + + + + + A constant key that can be used to retrieve the + group of the original from a recovery trigger's + data map in the case of a job recovering after a failed scheduler + instance. + + + + + + A constant key that can be used to retrieve the + scheduled fire time of the original from a recovery + trigger's data map in the case of a job recovering after a failed scheduler + instance. + + + Holds context/environment data that can be made available to Jobs as they are executed. + + Future versions of Quartz may make distinctions on how it propagates + data in between instances of proxies to a + single scheduler instance - i.e. if Quartz is being used via WCF of Remoting. + James House + Marko Lahma (.NET) Create an empty . - + Create a with the given data. + + + Serialization constructor. + + + + Instructs Scheduler what to do with a trigger and job. + Marko Lahma (.NET) - Instructs the that the + Instructs the that the has no further instructions. - Instructs the that the - wants the to re-Execute + Instructs the that the + wants the to re-Execute immediately. If not in a 'RECOVERING' or 'FAILED_OVER' situation, the execution context will be re-used (giving the the - abilitiy to 'see' anything placed in the context by its last execution). + ability to 'see' anything placed in the context by its last execution). - Instructs the that the + Instructs the that the should be put in the state. - Instructs the that the + Instructs the that the wants itself deleted. - Instructs the that all - s referencing the same as + Instructs the that all + s referencing the same as this one should be put in the state. - Instructs the that all - s referencing the same as + Instructs the that all + s referencing the same as this one should be put in the state. - Instructs the that the + Instructs the that the should be put in the state. @@ -16036,8 +19006,9 @@ instance. James House + Marko Lahma (.NET) - + Initializes a new instance of the class. @@ -16049,9 +19020,10 @@ if set to true, scheduler is in standby mode. if set to true, scheduler is shutdown. The start time. - The number of jobs executed. + The number of jobs executed. The job store type. if set to true, job store is persistent. + if set to true, the job store is clustered The thread pool type. Size of the thread pool. The version string. @@ -16062,12 +19034,12 @@ meta-data values.
-

+ The format of the string looks something like this:

             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.
             
-

+
@@ -16142,12 +19114,12 @@ - Returns the at which the Scheduler started running. + Returns the at which the Scheduler started running. null if the scheduler has not been started. - + Returns the number of jobs executed since the started.. @@ -16159,868 +19131,868 @@ instance supports persistence. - - - A concrete that is used to fire a - at a given moment in time, and optionally repeated at a specified interval. + + + Returns whether or not the 's + is clustered. - - - - - James House - Contributions by Lieven Govaerts of Ebitec Nv, Belgium. - Marko Lahma (.NET) - + - Used to indicate the 'repeat count' of the trigger is indefinite. Or in - other words, the trigger should repeat continually until the trigger's - ending timestamp. + SimpleScheduleBuilder is a + that defines strict/literal interval-based schedules for + s. + + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + Client code can then use the DSL to write code such as this: + + 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); + + + + + + + - + - Create a with no settings. + Create a SimpleScheduleBuilder. + + + the new SimpleScheduleBuilder - + - Create a that will occur immediately, and - not repeat. + Create a SimpleScheduleBuilder set to repeat forever with a 1 minute interval. + + + the new SimpleScheduleBuilder - + - Create a that will occur immediately, and - not repeat. + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of minutes. + + + the new SimpleScheduleBuilder - + - Create a that will occur immediately, and - repeat at the the given interval the given number of times. + Create a SimpleScheduleBuilder set to repeat forever with a 1 second interval. + + + the new SimpleScheduleBuilder - + - Create a that will occur immediately, and - repeat at the the given interval the given number of times. + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of seconds. + + + the new SimpleScheduleBuilder - + - Create a that will occur at the given time, - and not repeat. + Create a SimpleScheduleBuilder set to repeat forever with a 1 hour interval. + + + the new SimpleScheduleBuilder - + - Create a that will occur at the given time, - and not repeat. + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of hours. + + + the new SimpleScheduleBuilder - + - Create a that will occur at the given time, - and repeat at the the given interval the given number of times, or until - the given end time. + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 minute interval. - The name. - A UTC set to the time for the to fire. - A UTC set to the time for the - to quit repeat firing. - The number of times for the to repeat - firing, use for unlimited times. - The time span to pause between the repeat firing. + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder - + - Create a that will occur at the given time, - and repeat at the the given interval the given number of times, or until - the given end time. + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of minutes. - The name. - The group. - A UTC set to the time for the to fire. - A UTC set to the time for the - to quit repeat firing. - The number of times for the to repeat - firing, use for unlimited times. - The time span to pause between the repeat firing. + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder - + - Create a that will occur at the given time, - fire the identified and repeat at the the given - interval the given number of times, or until the given end time. + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 second interval. - The name. - The group. - Name of the job. - The job group. - A set to the time for the - to fire. - A set to the time for the - to quit repeat firing. - The number of times for the to repeat - firing, use RepeatIndefinitely for unlimited times. - The time span to pause between the repeat firing. + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder - + - Validates the misfire instruction. + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of seconds. - The misfire instruction. - + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder - + - Updates the 's state based on the - MisfireInstruction value that was selected when the - was created. + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 hour interval. - If MisfireSmartPolicyEnabled is set to true, - then the following scheme will be used:
-
    -
  • If the Repeat Count is 0, then the instruction will - be interpreted as .
  • -
  • If the Repeat Count is , then - the instruction will be interpreted as . - WARNING: using MisfirePolicy.SimpleTrigger.RescheduleNowWithRemainingRepeatCount - with a trigger that has a non-null end-time may cause the trigger to - never fire again if the end-time arrived during the misfire time span. -
  • -
  • If the Repeat Count is > 0, then the instruction - will be interpreted as . -
  • -
+ Note: Total count = 1 (at start time) + repeat count
+ the new SimpleScheduleBuilder
- + - Called when the has decided to 'fire' - the trigger (Execute the associated ), in order to - give the a chance to update itself for its next - triggering (if any). + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of hours. - + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder - + - Updates the instance with new calendar. + Build the actual Trigger -- NOT intended to be invoked by end users, + but will rather be invoked by a TriggerBuilder which this + ScheduleBuilder is given to. - The calendar. - The misfire threshold. + + + - + - Called by the scheduler at the time a is first - added to the scheduler, in order to have the - compute its first fire time, based on any associated calendar. -

- After this method has been called, - should return a valid answer. -

+ Specify a repeat interval in milliseconds.
- - The first time at which the will be fired - by the scheduler, which is also the same value - will return (until after the first firing of the ). - + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + +
- + - Returns the next time at which the will - fire. If the trigger will not fire again, will be - returned. The value returned is not guaranteed to be valid until after - the has been added to the scheduler. + Specify a repeat interval in seconds. + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + - + - Returns the previous time at which the fired. - If the trigger has not yet fired, will be - returned. + Specify a the number of time the trigger will repeat - total number of + firings will be this number + 1. + + + the number of seconds at which the trigger should repeat. + the updated SimpleScheduleBuilder + + - + - Set the next UTC time at which the should fire. - This method should not be invoked by client code. + Specify that the trigger will repeat indefinitely. + + + the updated SimpleScheduleBuilder + + + - + - Set the previous UTC time at which the fired. - This method should not be invoked by client code. + If the Trigger misfires, use the + instruction. + + + the updated CronScheduleBuilder + - - - Returns the next UTC time at which the will - fire, after the given UTC time. If the trigger will not fire after the given - time, will be returned. + + + If the Trigger misfires, use the + instruction. + + + the updated SimpleScheduleBuilder + - + - Returns the last UTC time at which the will - fire, before the given time. If the trigger will not fire before the - given time, will be returned. + If the Trigger misfires, use the + instruction. + + + the updated SimpleScheduleBuilder + - + - Computes the number of times fired between the two UTC date times. + If the Trigger misfires, use the + instruction. - The UTC start date and time. - The UTC end date and time. + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + Extension methods that attach to . + + + + + A time source for Quartz.NET that returns the current time. + Original idea by Ayende Rahien: + http://ayende.com/Blog/archive/2008/07/07/Dealing-with-time-in-tests.aspx + + + + + Return current UTC time via . Allows easier unit testing. + + + + + Return current time in current time zone via . Allows easier unit testing. + + + + + Represents a time in hour, minute and second of any given day. + + + The hour is in 24-hour convention, meaning values are from 0 to 23. + + + + + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) + + + + Create a TimeOfDay instance for the given hour, minute and second. + + The hour of day, between 0 and 23. + The minute of the hour, between 0 and 59. + The second of the minute, between 0 and 59. + + + + Create a TimeOfDay instance for the given hour, minute (at the zero second of the minute). + + The hour of day, between 0 and 23. + The minute of the hour, between 0 and 59. + + + + Create a TimeOfDay instance for the given hour, minute and second. + + The hour of day, between 0 and 23. + The minute of the hour, between 0 and 59. + The second of the minute, between 0 and 59. - - - Determines whether or not the will occur - again. + + + Create a TimeOfDay instance for the given hour, minute (at the zero second of the minute).. + The hour of day, between 0 and 23. + The minute of the hour, between 0 and 59. + The newly instantiated TimeOfDay - + - Validates whether the properties of the are - valid for submission into a . + Determine with this time of day is before the given time of day. + + True this time of day is before the given time of day. - + - Get or set thhe number of times the should - repeat, after which it will be automatically deleted. + Return a date with time of day reset to this object values. The millisecond value will be zero. + + + + + + The hour of the day (between 0 and 23). + + + + + The minute of the hour (between 0 and 59). + + + + + The second of the minute (between 0 and 59). + + + + + Attribute to use with public properties that + can be set with Quartz configuration. Attribute can be used to advice + parsing to use correct type of time span (milliseconds, seconds, minutes, hours) + as it may depend on property. + + Marko Lahma (.NET) + + + + + Initializes a new instance of the class. - + The rule. - + - Get or set the the time interval at which the should repeat. + Gets the rule. + The rule. - + - Get or set the number of times the has already - fired. + Possible parse rules for s. - - - Returns the final UTC time at which the will - fire, if repeatCount is RepeatIndefinitely, null will be returned. -

- Note that the return time may be in the past. -

+ + + - + - Tells whether this Trigger instance can handle events - in millisecond precision. + - - + - All trigger states known to Scheduler. + - + - Indicates that the is in the "normal" state. + - + - Indicates that the is in the "paused" state. + - + - Indicates that the is in the "complete" state. + TriggerBuilder is used to instantiate s. - "Complete" indicates that the trigger has not remaining fire-times in - its schedule. + + The builder will always try to keep itself in a valid state, with + reasonable defaults set for calling build() at any point. For instance + if you do not invoke WithSchedule(..) method, a default schedule + of firing once immediately will be used. As another example, if you + do not invoked WithIdentity(..) a trigger name will be generated + for you. + + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + + Client code can then use the DSL to write code such as this: + + + 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); + + + + + - + - Indicates that the is in the "error" state. + Create a new TriggerBuilder with which to define a + specification for a Trigger. -

- A arrives at the error state when the scheduler - attempts to fire it, but cannot due to an error creating and executing - its related job. Often this is due to the 's - class not existing in the classpath. -

- -

- When the trigger is in the error state, the scheduler will make no - attempts to fire it. -

+ the new TriggerBuilder
- + - Indicates that the is in the "blocked" state. + Produce the . - A arrives at the blocked state when the job that - it is associated with is a and it is - currently executing. - + a Trigger that meets the specifications of the builder. - - - Indicates that the does not exist. - - - + - Convenience and utility methods for simplifying the construction and - configuration of s. + Use a with the given name and default group to + identify the Trigger. - Please submit suggestions for additional convenience methods to either the - Quartz user forum or the developer's mail list at - source forge. + If none of the 'withIdentity' methods are set on the TriggerBuilder, + then a random, unique TriggerKey will be generated. - - - James House + the name element for the Trigger's TriggerKey + the updated TriggerBuilder + + - + - Constant indicating last day of month. + Use a TriggerKey with the given name and group to + identify the Trigger. + + If none of the 'withIdentity' methods are set on the TriggerBuilder, + then a random, unique TriggerKey will be generated. + + the name element for the Trigger's TriggerKey + the group element for the Trigger's TriggerKey + the updated TriggerBuilder + + - + - Milliseconds in minute. + Use the given TriggerKey to identify the Trigger. + + If none of the 'withIdentity' methods are set on the TriggerBuilder, + then a random, unique TriggerKey will be generated. + + the TriggerKey for the Trigger to be built + the updated TriggerBuilder + + - + - Milliseconds in hour. + Set the given (human-meaningful) description of the Trigger. + + + the description for the Trigger + the updated TriggerBuilder + - + - Seconds in day. + Set the Trigger's priority. When more than one Trigger have the same + fire time, the scheduler will fire the one with the highest priority + first. + + + the priority for the Trigger + the updated TriggerBuilder + + - + - Milliseconds in day. + Set the name of the that should be applied to this + Trigger's schedule. + + + the name of the Calendar to reference. + the updated TriggerBuilder + + - + - Initializes a new instance of the class. + Set the time the Trigger should start at - the trigger may or may + not fire at this time - depending upon the schedule configured for + the Trigger. However the Trigger will NOT fire before this time, + regardless of the Trigger's schedule. + + + the start time for the Trigger. + the updated TriggerBuilder + + - + - Set the given 's name to the given value, and its - group to the default group (). + Set the time the Trigger should start at to the current moment - + the trigger may or may not fire at this time - depending upon the + schedule configured for the Trigger. - the tigger to change name to - the new trigger name + + + the updated TriggerBuilder + - + - Set the given 's name to the given value, and its - group to the given group. + Set the time at which the Trigger will no longer fire - even if it's + schedule has remaining repeats. - the tigger to change name to - the new trigger name - the new trigger group + + + the end time for the Trigger. If null, the end time is indefinite. + the updated TriggerBuilder + + - + - Make a trigger that will fire every day at the given time. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

+ Set the that will be used to define the + Trigger's schedule.
- the hour (0-23) upon which to fire - the minute (0-59) upon which to fire - the new trigger + + The particular used will dictate + the concrete type of Trigger that is produced by the TriggerBuilder. + + the SchedulerBuilder to use. + the updated TriggerBuilder + + + +
- + - Make a trigger that will fire every day at the given time. -

- The generated trigger will not have its group or end-time set. - The Start time defaults to 'now'. -

+ Set the identity of the Job which should be fired by the produced + Trigger.
- the trigger's name - the hour (0-23) upon which to fire - the minute (0-59) upon which to fire - the newly created trigger + + + the identity of the Job to fire. + the updated TriggerBuilder +
- + - Make a trigger that will fire every week at the given day and time. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

+ Set the identity of the Job which should be fired by the produced + Trigger - a will be produced with the given + name and default group.
- (1-7) the day of week upon which to fire - the hour (0-23) upon which to fire - the minute (0-59) upon which to fire - the new trigger + + + the name of the job (in default group) to fire. + the updated TriggerBuilder +
- + - Make a trigger that will fire every week at the given day and time. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

+ Set the identity of the Job which should be fired by the produced + Trigger - a will be produced with the given + name and group.
- the trigger's name - the day of week upon which to fire - the hour (0-23) upon which to fire - the minute (0-59) upon which to fire - the newly created trigger + + + the name of the job to fire. + the group of the job to fire. + the updated TriggerBuilder +
- + - Make a trigger that will fire every month at the given day and time. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

-

- If the day of the month specified does not occur in a given month, a - firing will not occur that month. (i.e. if dayOfMonth is specified as - 31, no firing will occur in the months of the year with fewer than 31 - days). -

+ Set the identity of the Job which should be fired by the produced + Trigger, by extracting the JobKey from the given job.
- (1-31, or -1) the day of week upon which to fire - the hour (0-23) upon which to fire - the minute (0-59) upon which to fire - the newly created trigger + + + the Job to fire. + the updated TriggerBuilder +
- + - Make a trigger that will fire every month at the given day and time. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

-

- If the day of the month specified does not occur in a given month, a - firing will not occur that month. (i.e. if dayOfMonth is specified as - 31, no firing will occur in the months of the year with fewer than 31 - days). -

-
- the trigger's name - (1-31, or -1) the day of week upon which to fire - the hour (0-23) upon which to fire - the minute (0-59) upon which to fire - the newly created trigger -
- - - Make a trigger that will fire times, waiting - between each fire. + Add the given key-value pair to the Trigger's . - - The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. - - the newly created trigger - - - - Make a trigger that will fire times, waiting - between each fire. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

-
- the trigger's name - the new trigger -
- - - Make a trigger that will fire every second, indefinitely. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

-
- the new trigger -
- - - Make a trigger that will fire every second, indefinitely. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

-
- the trigger's name - the new trigger -
- - - Make a trigger that will fire every N seconds, indefinitely. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

-
- the number of seconds between firings - the new trigger -
- - - Make a trigger that will fire every N seconds, with the given number of - repeats. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

-
- the number of seconds between firings - the number of times to repeat the firing - the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every N seconds, with the given number of - repeats. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

+ Add the given key-value pair to the Trigger's .
- the trigger's name - the number of seconds between firings - the number of times to repeat the firing - the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every minute, indefinitely. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

+ Add the given key-value pair to the Trigger's .
- the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every minute, indefinitely. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

+ Add the given key-value pair to the Trigger's .
- the trigger's name - the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every N minutes, indefinitely. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

+ Add the given key-value pair to the Trigger's .
- the number of minutes between firings - the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every N minutes, with the given number of - repeats. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

+ Add the given key-value pair to the Trigger's .
- the number of minutes between firings - the number of times to repeat the firing - the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every N minutes, with the given number of - repeats. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

+ Add the given key-value pair to the Trigger's .
- the trigger's name - the number of minutes between firings - the number of times to repeat the firing - the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every hour, indefinitely. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

+ Add the given key-value pair to the Trigger's .
- the new trigger + + + the updated TriggerBuilder +
- + - Make a trigger that will fire every hour, indefinitely. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

+ Common constants for triggers.
- the trigger's name - the new trigger
- + - Make a trigger that will fire every N hours, indefinitely. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

+ The default value for priority.
- the number of hours between firings - the new trigger
- + - Make a trigger that will fire every N hours, with the given number of - repeats. -

- The generated trigger will not have its name, group, - or end-time set. The Start time defaults to 'now'. -

-
- the number of hours between firings - the number of times to repeat the firing - the new trigger + Uniquely identifies a . +
+ + Keys are composed of both a name and group, and the name must be unique + within the group. If only a name is specified then the default group + name will be used. + + + Quartz provides a builder-style API for constructing scheduling-related + entities via a Domain-Specific Language (DSL). The DSL can best be + utilized through the usage of static imports of the methods on the classes + , , + , , + and the various implementations. + + + Client code can then use the DSL to write code such as this: + + + 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); + + + +
- + - Make a trigger that will fire every N hours, with the given number of - repeats. -

- The generated trigger will not have its group, - or end-time set. The Start time defaults to 'now'. -

+ All trigger states known to Scheduler.
- the trigger's name - the number of hours between firings - the number of times to repeat the firing - the new trigger + Marko Lahma (.NET)
- + - Returns a date that is rounded to the next even hour above the given - date. -

- For example an input date with a time of 08:13:54 would result in a date - with the time of 09:00:00. If the date's time is in the 23rd hour, the - date's 'day' will be promoted, and the time will be set to 00:00:00. -

+ Indicates that the is in the "normal" state.
- the Date to round, if the current time will - be used - the new rounded date
- + - Returns a date that is rounded to the previous even hour below the given - date. -

- For example an input date with a time of 08:13:54 would result in a date - with the time of 08:00:00. -

+ Indicates that the is in the "paused" state.
- the Date to round, if the current time will - be used - the new rounded date
- + - Returns a date that is rounded to the next even minute above the given - date. -

- For example an input date with a time of 08:13:54 would result in a date - with the time of 08:14:00. If the date's time is in the 59th minute, - then the hour (and possibly the day) will be promoted. -

+ Indicates that the is in the "complete" state.
- The Date to round, if the current time will be used - The new rounded date + + "Complete" indicates that the trigger has not remaining fire-times in + its schedule. +
- + - Returns a date that is rounded to the previous even minute below the - given date. -

- For example an input date with a time of 08:13:54 would result in a date - with the time of 08:13:00. -

+ Indicates that the is in the "error" state.
- the Date to round, if the current time will - be used - the new rounded date + + + A arrives at the error state when the scheduler + attempts to fire it, but cannot due to an error creating and executing + its related job. Often this is due to the 's + class not existing in the classpath. + + + + When the trigger is in the error state, the scheduler will make no + attempts to fire it. + +
- + - Returns a date that is rounded to the next even second above the given - date. + Indicates that the is in the "blocked" state. - the Date to round, if the current time will - be used - the new rounded date + + A arrives at the blocked state when the job that + it is associated with has a and it is + currently executing. + + - + - Returns a date that is rounded to the previous even second below the - given date. -

- For example an input date with a time of 08:13:54.341 would result in a - date with the time of 08:13:00.000. -

+ Indicates that the does not exist.
- the Date to round, if the current time will - be used - the new rounded date
- + - Returns a date that is rounded to the next even multiple of the given - minute. -

- For example an input date with a time of 08:13:54, and an input - minute-base of 5 would result in a date with the time of 08:15:00. The - same input date with an input minute-base of 10 would result in a date - with the time of 08:20:00. But a date with the time 08:53:31 and an - input minute-base of 45 would result in 09:00:00, because the even-hour - is the next 'base' for 45-minute intervals. -

- -

- More examples: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Input TimeMinute-BaseResult Time
11:16:412011:20:00
11:36:412011:40:00
11:46:412012:00:00
11:26:413011:30:00
11:36:413012:00:00
11:16:411711:17:00
11:17:411711:34:00
11:52:411712:00:00
11:52:41511:55:00
11:57:41512:00:00
11:17:41012:00:00
11:17:41111:08:00
-

- + A Comparator that compares trigger's next fire times, or in other words, + sorts them according to earliest next fire time. If the fire times are + the same, then the triggers are sorted according to priority (highest + value first), if the priorities are the same, then they are sorted + by key.
- - the Date to round, if the current time will - be used - - - the base-minute to set the time on - - the new rounded date
- + - Returns a date that is rounded to the next even multiple of the given - minute. -

- The rules for calculating the second are the same as those for - calculating the minute in the method - . -

+ Convenience and utility methods for simplifying the construction and + configuration of s and DateTimeOffsetOffsets.
- The date. - The second base. - + + + James House + Marko Lahma (.NET)
- + Returns a list of Dates that are the next fire times of a - . + . The input trigger will be cloned before any work is done, so you need not worry about its state being altered by this method. @@ -17029,17 +20001,32 @@ The number of next fire times to produce List of java.util.Date objects - + + + Compute the that is 1 second after the Nth firing of + the given , taking the triger's associated + into consideration. + + + The input trigger will be cloned before any work is done, so you need + not worry about its state being altered by this method. + + The trigger upon which to do the work + The calendar to apply to the trigger's schedule + The number of next fire times to produce + the computed Date, or null if the trigger (as configured) will not fire that many times + + - Returns a list of Dates that are the next fire times of a + Returns a list of Dates that are the next fire times of a that fall within the given date range. The input trigger will be cloned before any work is done, so you need not worry about its state being altered by this method. -

+ NOTE: if this is a trigger that has previously fired within the given - date range, then firings which have already occured will not be listed + date range, then firings which have already occurred will not be listed in the output List. -

+
The trigger upon which to do the work The calendar to apply to the trigger's schedule @@ -17047,33 +20034,6 @@ The ending date at which to stop finding fire times List of java.util.Date objects
- - - Translate a date and time from a users timezone to the another - (probably server) timezone to assist in creating a simple trigger with - the right date and time. - - the date to translate - the original time-zone - the destination time-zone - the translated UTC date - - - - Gets the offset from UT for the given date in the given timezone, - taking into account daylight savings. - - the date that is the base for the offset - the time-zone to calculate to offset to - the offset - - - - This functions determines if the TimeZone uses daylight saving time - - TimeZone instance to validate - True or false depending if daylight savings time is used - An exception that is thrown to indicate that a call to @@ -17081,6 +20041,7 @@ James House + Marko Lahma (.NET)