diff --git a/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj b/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj index 88de4ab..c54a775 100644 --- a/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj +++ b/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj @@ -51,14 +51,19 @@ 4 - - ..\lib\Common.Logging.dll + + ..\packages\Quartz.2.0.1\lib\net40\C5.dll + + + False + ..\packages\Common.Logging.2.0.0\lib\2.0\Common.Logging.dll ..\packages\log4net.1.2.10\lib\2.0\log4net.dll - - ..\lib\Quartz.dll + + False + ..\packages\Quartz.2.0.1\lib\net40\Quartz.dll diff --git a/ClickForensics.Quartz.Manager/QuartzScheduler.cs b/ClickForensics.Quartz.Manager/QuartzScheduler.cs index 59adaa9..fba978d 100644 --- a/ClickForensics.Quartz.Manager/QuartzScheduler.cs +++ b/ClickForensics.Quartz.Manager/QuartzScheduler.cs @@ -17,302 +17,302 @@ using Quartz.Util; namespace ClickForensics.Quartz.Manager { - public class QuartzScheduler - { - public QuartzScheduler(string server, int port, string scheduler) - { - Address = string.Format("tcp://{0}:{1}/{2}", server, port, scheduler); - _schedulerFactory = new StdSchedulerFactory(getProperties(Address)); + public class QuartzScheduler + { + public QuartzScheduler(string server, int port, string scheduler) + { + Address = string.Format("tcp://{0}:{1}/{2}", server, port, scheduler); + _schedulerFactory = new StdSchedulerFactory(getProperties(Address)); - try - { - _scheduler = _schedulerFactory.GetScheduler(); - } - catch (SchedulerException) - { - MessageBox.Show("Unable to connect to the specified server", "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - public string Address { get; private set; } - private NameValueCollection getProperties(string address) - { - NameValueCollection properties = new NameValueCollection(); - properties["quartz.scheduler.instanceName"] = "RemoteClient"; - properties["quartz.scheduler.proxy"] = "true"; - properties["quartz.threadPool.threadCount"] = "0"; - properties["quartz.scheduler.proxy.address"] = address; - return properties; - } - public IScheduler GetScheduler() - { - return _scheduler; - } - public DataTable GetJobs() - { - DataTable table = new DataTable(); - table.Columns.Add("GroupName"); - table.Columns.Add("JobName"); - table.Columns.Add("JobDescription"); - table.Columns.Add("TriggerName"); - table.Columns.Add("TriggerGroupName"); - table.Columns.Add("TriggerType"); - table.Columns.Add("TriggerState"); - table.Columns.Add("NextFireTime"); - table.Columns.Add("PreviousFireTime"); - var jobGroups = GetScheduler().GetJobGroupNames(); - foreach (string group in jobGroups) - { - var groupMatcher = GroupMatcher.GroupContains(group); - var jobKeys = GetScheduler().GetJobKeys(groupMatcher); - foreach (var jobKey in jobKeys) - { - var detail = GetScheduler().GetJobDetail(jobKey); - var triggers = GetScheduler().GetTriggersOfJob(jobKey); - foreach (ITrigger trigger in triggers) - { - DataRow row = table.NewRow(); - row["GroupName"] = group; - row["JobName"] = jobKey.Name; - row["JobDescription"] = detail.Description; - row["TriggerName"] = trigger.Key.Name; - row["TriggerGroupName"] = trigger.Key.Group; - row["TriggerType"] = trigger.GetType().Name; - row["TriggerState"] = GetScheduler().GetTriggerState(trigger.Key); - DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc(); - if (nextFireTime.HasValue) - { - row["NextFireTime"] = TimeZone.CurrentTimeZone.ToLocalTime(nextFireTime.Value.DateTime); - } + try + { + _scheduler = _schedulerFactory.GetScheduler(); + } + catch (SchedulerException) + { + MessageBox.Show("Unable to connect to the specified server", "Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + public string Address { get; private set; } + private NameValueCollection getProperties(string address) + { + NameValueCollection properties = new NameValueCollection(); + properties["quartz.scheduler.instanceName"] = "RemoteClient"; + properties["quartz.scheduler.proxy"] = "true"; + properties["quartz.threadPool.threadCount"] = "0"; + properties["quartz.scheduler.proxy.address"] = address; + return properties; + } + public IScheduler GetScheduler() + { + return _scheduler; + } + public DataTable GetJobs() + { + DataTable table = new DataTable(); + table.Columns.Add("GroupName"); + table.Columns.Add("JobName"); + table.Columns.Add("JobDescription"); + table.Columns.Add("TriggerName"); + table.Columns.Add("TriggerGroupName"); + table.Columns.Add("TriggerType"); + table.Columns.Add("TriggerState"); + table.Columns.Add("NextFireTime"); + table.Columns.Add("PreviousFireTime"); + var jobGroups = GetScheduler().GetJobGroupNames(); + foreach (string group in jobGroups) + { + var groupMatcher = GroupMatcher.GroupContains(group); + var jobKeys = GetScheduler().GetJobKeys(groupMatcher); + foreach (var jobKey in jobKeys) + { + var detail = GetScheduler().GetJobDetail(jobKey); + var triggers = GetScheduler().GetTriggersOfJob(jobKey); + foreach (ITrigger trigger in triggers) + { + DataRow row = table.NewRow(); + row["GroupName"] = group; + row["JobName"] = jobKey.Name; + row["JobDescription"] = detail.Description; + row["TriggerName"] = trigger.Key.Name; + row["TriggerGroupName"] = trigger.Key.Group; + row["TriggerType"] = trigger.GetType().Name; + row["TriggerState"] = GetScheduler().GetTriggerState(trigger.Key); + DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc(); + if (nextFireTime.HasValue) + { + row["NextFireTime"] = TimeZone.CurrentTimeZone.ToLocalTime(nextFireTime.Value.DateTime); + } - DateTimeOffset? previousFireTime = trigger.GetPreviousFireTimeUtc(); - if (previousFireTime.HasValue) - { - row["PreviousFireTime"] = TimeZone.CurrentTimeZone.ToLocalTime(previousFireTime.Value.DateTime); - } + DateTimeOffset? previousFireTime = trigger.GetPreviousFireTimeUtc(); + if (previousFireTime.HasValue) + { + row["PreviousFireTime"] = TimeZone.CurrentTimeZone.ToLocalTime(previousFireTime.Value.DateTime); + } - table.Rows.Add(row); - } - } - } - return table; - } + table.Rows.Add(row); + } + } + } + return table; + } - public void ScheduleOneTimeJob(Type jobType, JobDataMap dataMap, int clientID) - { - string name = string.Format("{0}-{1}", jobType.Name, clientID); - string group = clientID.ToString(); - IJobDetail jobDetail = JobBuilder. - Create(). - OfType(jobType). - WithIdentity(name, group). - WithDescription("One time job"). - UsingJobData(dataMap).Build(); - ITrigger trigger = TriggerBuilder. - Create(). - ForJob(jobDetail). - WithIdentity(name, group). - WithSchedule(SimpleScheduleBuilder.Create().WithRepeatCount(0).WithInterval(TimeSpan.Zero)). - StartNow().Build(); - GetScheduler().ScheduleJob(jobDetail, trigger); - } - private ISchedulerFactory _schedulerFactory; + private ISchedulerFactory _schedulerFactory; - private IScheduler _scheduler; + private IScheduler _scheduler; - public DataTable GetRunningJobs() - { - DataTable table = new DataTable(); - table.Columns.Add("JobName", typeof(string)); - table.Columns.Add("RunTime", typeof(int)); - try - { - var contexts = GetScheduler().GetCurrentlyExecutingJobs(); - foreach (var context in contexts) - { - DataRow row = table.NewRow(); - row["JobName"] = context.JobDetail.Key.Name; - row["RunTime"] = (DateTime.Now.ToUniversalTime() - ((DateTimeOffset)context.FireTimeUtc).DateTime).TotalMinutes; - table.Rows.Add(row); - } - } - catch (Exception ex) - { - //TODO: Let the user know we couldn't load the running jobs. - } + public void ScheduleOneTimeJob(Type jobType, JobDataMap dataMap, int clientID) + { + string name = string.Format("{0}-{1}", jobType.Name, clientID); + string group = clientID.ToString(); + IJobDetail jobDetail = JobBuilder. + Create(). + OfType(jobType). + WithIdentity(name, group). + WithDescription("One time job"). + UsingJobData(dataMap).Build(); + ITrigger trigger = TriggerBuilder. + Create(). + ForJob(jobDetail). + WithIdentity(name, group). + WithSchedule(SimpleScheduleBuilder.Create().WithRepeatCount(0).WithInterval(TimeSpan.Zero)). + StartNow().Build(); + GetScheduler().ScheduleJob(jobDetail, trigger); + } + public DataTable GetRunningJobs() + { + DataTable table = new DataTable(); + table.Columns.Add("JobName", typeof(string)); + table.Columns.Add("RunTime", typeof(int)); + try + { + var contexts = GetScheduler().GetCurrentlyExecutingJobs(); + foreach (var context in contexts) + { + DataRow row = table.NewRow(); + row["JobName"] = context.JobDetail.Key.Name; + row["RunTime"] = (DateTime.Now.ToUniversalTime() - ((DateTimeOffset)context.FireTimeUtc).DateTime).TotalMinutes; + table.Rows.Add(row); + } + } + catch (Exception ex) + { + //TODO: Let the user know we couldn't load the running jobs. + } - return table; - } + return table; + } - public void BackupToFile(System.IO.FileInfo file) - { - IScheduler scheduler = GetScheduler(); - var jobGroupNames = scheduler.GetJobGroupNames(); - List jobDetails = new List(); - foreach (var jobGroup in jobGroupNames) - { - var groupMatcher = GroupMatcher.GroupContains(jobGroup); + public void BackupToFile(System.IO.FileInfo file) + { + IScheduler scheduler = GetScheduler(); + var jobGroupNames = scheduler.GetJobGroupNames(); + List jobDetails = new List(); + foreach (var jobGroup in jobGroupNames) + { + var groupMatcher = GroupMatcher.GroupContains(jobGroup); - var jobKeys = scheduler.GetJobKeys(groupMatcher); - foreach (var jobKey in jobKeys) - { - jobDetails.Add(scheduler.GetJobDetail(jobKey)); - } - } - writeToFile(file, jobDetails); + var jobKeys = scheduler.GetJobKeys(groupMatcher); + foreach (var jobKey in jobKeys) + { + jobDetails.Add(scheduler.GetJobDetail(jobKey)); + } + } + writeToFile(file, jobDetails); - } + } - private void writeToFile(System.IO.FileInfo file, List jobDetails) - { - using (StreamWriter writer = file.CreateText()) - { - XNamespace ns = "http://quartznet.sourceforge.net/JobSchedulingData"; - XDocument doc = new XDocument(new XDeclaration("1.0", "UTF-8", "yes") - , new XElement(ns + "quartz" - , new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance") - , new XAttribute("version", "1.0") - , new XAttribute("overwrite-existing-jobs", "true") - ) - ); - foreach (IJobDetail detail in jobDetails) - { - doc.Root.Add( - new XElement(ns + "job" - , new XElement(ns + "job-detail" - , new XElement(ns + "name", detail.Key.Name) - , new XElement(ns + "group", detail.Key.Group) - , new XElement(ns + "description", detail.Description) - , new XElement(ns + "job-type", detail.JobType.FullName + "," + detail.JobType.Assembly.FullName) - //TODO: Apparently volatile is no longer available. Check. - //, new XElement(ns + "volatile", detail.Volatile) - , new XElement(ns + "durable", detail.Durable) - , new XElement(ns + "recover", detail.RequestsRecovery) - , getJobDataMap(ns, detail.JobDataMap) - ) - , getTriggers(ns, detail) - ) - ); - } - writer.Write(doc); - writer.Flush(); - writer.Close(); - } - } + private void writeToFile(System.IO.FileInfo file, List jobDetails) + { + using (StreamWriter writer = file.CreateText()) + { + XNamespace ns = "http://quartznet.sourceforge.net/JobSchedulingData"; + XDocument doc = new XDocument(new XDeclaration("1.0", "UTF-8", "yes") + , new XElement(ns + "quartz" + , new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance") + , new XAttribute("version", "1.0") + , new XAttribute("overwrite-existing-jobs", "true") + ) + ); + foreach (IJobDetail detail in jobDetails) + { + doc.Root.Add( + new XElement(ns + "job" + , new XElement(ns + "job-detail" + , new XElement(ns + "name", detail.Key.Name) + , new XElement(ns + "group", detail.Key.Group) + , new XElement(ns + "description", detail.Description) + , new XElement(ns + "job-type", detail.JobType.FullName + "," + detail.JobType.Assembly.FullName) + //TODO: Apparently volatile is no longer available. Check. + //, new XElement(ns + "volatile", detail.Volatile) + , new XElement(ns + "durable", detail.Durable) + , new XElement(ns + "recover", detail.RequestsRecovery) + , getJobDataMap(ns, detail.JobDataMap) + ) + , getTriggers(ns, detail) + ) + ); + } + writer.Write(doc); + writer.Flush(); + writer.Close(); + } + } - private XElement getJobDataMap(XNamespace ns, JobDataMap jobDataMap) - { - XElement map = new XElement(ns + "job-data-map"); - foreach (var key in jobDataMap.GetKeys()) - { - map.Add(new XElement(ns + "entry" - , new XElement(ns + "key", key) - , new XElement(ns + "value", jobDataMap[key]) - ) - ); - } + private XElement getJobDataMap(XNamespace ns, JobDataMap jobDataMap) + { + XElement map = new XElement(ns + "job-data-map"); + foreach (var key in jobDataMap.GetKeys()) + { + map.Add(new XElement(ns + "entry" + , new XElement(ns + "key", key) + , new XElement(ns + "value", jobDataMap[key]) + ) + ); + } - return map; - } + return map; + } - private XElement[] getTriggers(XNamespace ns, IJobDetail detail) - { - var triggers = _scheduler.GetTriggersOfJob(detail.Key); - XElement[] elements = new XElement[triggers.Count]; - int i = 0; - foreach (var trigger in triggers) - { - elements[i] = new XElement(ns + "trigger"); - if (triggers[i] is SimpleTriggerImpl) - { - elements[i].Add(getSimpleTrigger(ns, (SimpleTriggerImpl)triggers[i])); - } - else if (triggers[i] is CronTriggerImpl) - { - elements[i].Add(getCronTrigger(ns, (CronTriggerImpl)triggers[i])); - } - i++; - } - return elements; - } + private XElement[] getTriggers(XNamespace ns, IJobDetail detail) + { + var triggers = _scheduler.GetTriggersOfJob(detail.Key); + XElement[] elements = new XElement[triggers.Count]; + int i = 0; + foreach (var trigger in triggers) + { + elements[i] = new XElement(ns + "trigger"); + if (triggers[i] is SimpleTriggerImpl) + { + elements[i].Add(getSimpleTrigger(ns, (SimpleTriggerImpl)triggers[i])); + } + else if (triggers[i] is CronTriggerImpl) + { + elements[i].Add(getCronTrigger(ns, (CronTriggerImpl)triggers[i])); + } + i++; + } + return elements; + } - private XElement getCronTrigger(XNamespace ns, CronTriggerImpl trigger) - { - XElement cronTrigger = new XElement(ns + "cron"); - addCommonTriggerData(ns, cronTrigger, trigger); - cronTrigger.Add( - new XElement(ns + "cron-expression", trigger.CronExpressionString) - ); - return cronTrigger; - } + private XElement getCronTrigger(XNamespace ns, CronTriggerImpl trigger) + { + XElement cronTrigger = new XElement(ns + "cron"); + addCommonTriggerData(ns, cronTrigger, trigger); + cronTrigger.Add( + new XElement(ns + "cron-expression", trigger.CronExpressionString) + ); + return cronTrigger; + } - private void addCommonTriggerData(XNamespace ns, XElement rootTriggerElement, AbstractTrigger trigger) - { - rootTriggerElement.Add( - new XElement(ns + "name", trigger.Key.Name) - , new XElement(ns + "group", trigger.Key.Group) - , new XElement(ns + "description", trigger.Description) - , new XElement(ns + "misfire-instruction", getMisfireInstructionText(trigger)) - //, new XElement(ns + "volatile", trigger.Volatile) - , new XElement(ns + "job-name", trigger.JobName) - , new XElement(ns + "job-group", trigger.JobGroup) - ); - } + private void addCommonTriggerData(XNamespace ns, XElement rootTriggerElement, AbstractTrigger trigger) + { + rootTriggerElement.Add( + new XElement(ns + "name", trigger.Key.Name) + , new XElement(ns + "group", trigger.Key.Group) + , new XElement(ns + "description", trigger.Description) + , new XElement(ns + "misfire-instruction", getMisfireInstructionText(trigger)) + //, new XElement(ns + "volatile", trigger.Volatile) + , new XElement(ns + "job-name", trigger.JobName) + , new XElement(ns + "job-group", trigger.JobGroup) + ); + } - private string getMisfireInstructionText(AbstractTrigger trigger) - { - if (trigger is CronTriggerImpl) - { - return getCronTriggerMisfireInstructionText(trigger.MisfireInstruction); - } - return getSimpleTriggerMisfireInstructionText(trigger.MisfireInstruction); - } + private string getMisfireInstructionText(AbstractTrigger trigger) + { + if (trigger is CronTriggerImpl) + { + return getCronTriggerMisfireInstructionText(trigger.MisfireInstruction); + } + return getSimpleTriggerMisfireInstructionText(trigger.MisfireInstruction); + } - private string getSimpleTriggerMisfireInstructionText(int misfireInstruction) - { - switch (misfireInstruction) - { - case 0: - return "SmartPolicy"; - case 1: - return "FireNow"; - case 2: - return "RescheduleNowWithExistingRepeatCount"; - case 3: - return "RescheduleNowWithRemainingRepeatCount"; - case 4: - return "RescheduleNextWithRemainingCount"; - case 5: - return "RescheduleNextWithExistingCount"; - default: - throw new ArgumentOutOfRangeException(string.Format("{0} is not a supported misfire instruction for SimpleTrigger See Quartz.MisfireInstruction for more details.", misfireInstruction)); - } - } + private string getSimpleTriggerMisfireInstructionText(int misfireInstruction) + { + switch (misfireInstruction) + { + case 0: + return "SmartPolicy"; + case 1: + return "FireNow"; + case 2: + return "RescheduleNowWithExistingRepeatCount"; + case 3: + return "RescheduleNowWithRemainingRepeatCount"; + case 4: + return "RescheduleNextWithRemainingCount"; + case 5: + return "RescheduleNextWithExistingCount"; + default: + throw new ArgumentOutOfRangeException(string.Format("{0} is not a supported misfire instruction for SimpleTrigger See Quartz.MisfireInstruction for more details.", misfireInstruction)); + } + } - private string getCronTriggerMisfireInstructionText(int misfireInstruction) - { - switch (misfireInstruction) - { - case 0: - return "SmartPolicy"; - case 1: - return "FireOnceNow"; - case 2: - return "DoNothing"; - default: - throw new ArgumentOutOfRangeException(string.Format("{0} is not a supported misfire instruction for CronTrigger See Quartz.MisfireInstruction for more details.", misfireInstruction)); - } - } + private string getCronTriggerMisfireInstructionText(int misfireInstruction) + { + switch (misfireInstruction) + { + case 0: + return "SmartPolicy"; + case 1: + return "FireOnceNow"; + case 2: + return "DoNothing"; + default: + throw new ArgumentOutOfRangeException(string.Format("{0} is not a supported misfire instruction for CronTrigger See Quartz.MisfireInstruction for more details.", misfireInstruction)); + } + } - private XElement getSimpleTrigger(XNamespace ns, SimpleTriggerImpl trigger) - { - XElement simpleTrigger = new XElement(ns + "simple"); - addCommonTriggerData(ns, simpleTrigger, trigger); - simpleTrigger.Add( - new XElement(ns + "repeat-count", trigger.RepeatCount) - , new XElement(ns + "repeat-interval", trigger.RepeatInterval.Milliseconds) - ); - return simpleTrigger; - } - } + private XElement getSimpleTrigger(XNamespace ns, SimpleTriggerImpl trigger) + { + XElement simpleTrigger = new XElement(ns + "simple"); + addCommonTriggerData(ns, simpleTrigger, trigger); + simpleTrigger.Add( + new XElement(ns + "repeat-count", trigger.RepeatCount) + , new XElement(ns + "repeat-interval", trigger.RepeatInterval.Milliseconds) + ); + return simpleTrigger; + } + } } diff --git a/ClickForensics.Quartz.Manager/packages.config b/ClickForensics.Quartz.Manager/packages.config index 5f354f1..4369105 100644 --- a/ClickForensics.Quartz.Manager/packages.config +++ b/ClickForensics.Quartz.Manager/packages.config @@ -1,4 +1,6 @@  + + \ No newline at end of file diff --git a/packages/Common.Logging.2.0.0/Common.Logging.2.0.0.nupkg b/packages/Common.Logging.2.0.0/Common.Logging.2.0.0.nupkg new file mode 100644 index 0000000..7ad90ee Binary files /dev/null and b/packages/Common.Logging.2.0.0/Common.Logging.2.0.0.nupkg differ diff --git a/packages/Common.Logging.2.0.0/lib/2.0/Common.Logging.dll b/packages/Common.Logging.2.0.0/lib/2.0/Common.Logging.dll new file mode 100644 index 0000000..5c1feac Binary files /dev/null and b/packages/Common.Logging.2.0.0/lib/2.0/Common.Logging.dll differ diff --git a/packages/Quartz.2.0.1/Quartz.2.0.1.nupkg b/packages/Quartz.2.0.1/Quartz.2.0.1.nupkg new file mode 100644 index 0000000..f64f3be Binary files /dev/null and b/packages/Quartz.2.0.1/Quartz.2.0.1.nupkg differ diff --git a/packages/Quartz.2.0.1/lib/net35-client/C5.dll b/packages/Quartz.2.0.1/lib/net35-client/C5.dll new file mode 100644 index 0000000..2130d1f Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net35-client/C5.dll differ diff --git a/packages/Quartz.2.0.1/lib/net35-client/Quartz.dll b/packages/Quartz.2.0.1/lib/net35-client/Quartz.dll new file mode 100644 index 0000000..a324bd5 Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net35-client/Quartz.dll differ diff --git a/packages/Quartz.2.0.1/lib/net35-client/Quartz.pdb b/packages/Quartz.2.0.1/lib/net35-client/Quartz.pdb new file mode 100644 index 0000000..ae11611 Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net35-client/Quartz.pdb differ diff --git a/packages/Quartz.2.0.1/lib/net35-client/Quartz.xml b/packages/Quartz.2.0.1/lib/net35-client/Quartz.xml new file mode 100644 index 0000000..de320e2 --- /dev/null +++ b/packages/Quartz.2.0.1/lib/net35-client/Quartz.xml @@ -0,0 +1,20066 @@ + + + + Quartz + + + + + A wrapper for generic HashSet that brings a common interface. + + + + + + Represents a collection ob objects that contains no duplicate elements. + + Marko Lahma (.NET) + + + + A sorted set. + + Marko Lahma (.NET) + + + + 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. + + + + Returns the first item in the set. + + First object. + + + + Returns the object in the specified index. + + + + + + + Simple C5 wrapper for common interface. + + + + + + Default constructor. + + + + + Constructor that accepts comparer. + + Comparer to use. + + + + Constructor that prepolutates. + + + + + + Returns the first element. + + + + + + Return items from given range. + + + + + + + Indexer. + + + + + + + Only for backwards compatibility with serialization! + + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + 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) + + + + 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. + + Marko Lahma (.NET) + + + + + The interface to be implemented by classes that want to be informed of major + events. + + + + + James House + Marko Lahma (.NET) + + + + 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 a s has been paused. + + + + + Called by the a group of + s has been paused. + + + If a all groups were paused, then the parameter + will be null. + + The trigger group. + + + + Called by the when a + has been un-paused. + + + + + 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. + + + + Called by the when a + has been added. + + + + + + Called by the when a + has been deleted. + + + + + Called by the when a + has been paused. + + + + + 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. + + + + Called by the when a + has been un-paused. + + + + + 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 inform the listener + that it has move to standby mode. + + + + + Called by the to inform the listener + that it has started. + + + + + 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. + + + + + This interface should be implemented by any class whose instances are intended + to be executed by a thread. + + Marko Lahma (.NET) + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Create a JobRunShell instance with the given settings. + + The instance that should be made + available within the . + + + + + Initializes the job execution context with given scheduler and bundle. + + The scheduler. + + + + Requests the Shutdown. + + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Runs begin procedures on this instance. + + + + + Completes the execution. + + if set to true [successful execution]. + + + + Passivates this instance. + + + + + Completes the trigger retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Vetoeds the job retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Default concrete implementation of . + + + + + 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. + + + + 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. + + + + + + + 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. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and removed. + + + + Get a List containing all of the s in + the. + + + + + Get the that has the given name. + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and + removed. + + + + Get a List containing all of the s + in the. + + + + + 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. + + true if the Job was found and deleted. + + + + Remove the indicated from the + scheduler. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + the key of the trigger + 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. + + + + + Creates a new positive random number + + The last random obtained + Returns a new positive random number + + + + Trigger the identified (Execute it now) - with a non-volatile trigger. + + + + + Store and schedule the identified + + + + + + Pause the with the given name. + + + + + Pause all of the s in the given group. + + + + + 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. + + + + + Resume (un-pause) the with the given + name. + + 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 + matching groups. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + Gets the paused trigger groups. + + + + + + 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. + + + + + + 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 + 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 + on every group. + + 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 the names of all known + groups. + + + + + Get the names of all the s in + the matching groups. + + + + + Get the for the + instance with the given name and group. + + + + + Get the instance with the given name and + group. + + + + + 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. + + + + + Get the current state of the identified . + + + + + + Add (register) the given to the Scheduler. + + + + + Delete the identified from the Scheduler. + + true if the Calendar was found and deleted. + + + + Get the instance with the given name. + + + + + Get the names of all registered s. + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal + that has the given name. + + + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal that + has the given name. + + + + + + + Notifies the job store job complete. + + 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. + + The jec. + The je. + + + + Notifies the scheduler listeners about scheduler error. + + The MSG. + The se. + + + + Notifies the scheduler listeners about job that was scheduled. + + The trigger. + + + + Notifies the scheduler listeners about job that was unscheduled. + + + + + Notifies the scheduler listeners about finalized trigger. + + The trigger. + + + + Notifies the scheduler listeners about paused trigger. + + The group. + + + + Notifies the scheduler listeners about paused trigger. + + + + + Notifies the scheduler listeners resumed trigger. + + The group. + + + + Notifies the scheduler listeners resumed trigger. + + + + + Notifies the scheduler listeners about paused job. + + + + + Notifies the scheduler listeners about paused job. + + The group. + + + + Notifies the scheduler listeners about resumed job. + + + + + Notifies the scheduler listeners about resumed job. + + The group. + + + + 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. + + + + + Gets the version of the Quartz Scheduler. + + The version. + + + + Gets the version major. + + The version major. + + + + Gets the version minor. + + The version minor. + + + + Gets the version iteration. + + The version iteration. + + + + Gets the scheduler signaler. + + The scheduler signaler. + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + Gets or sets a value indicating whether to signal on scheduling change. + + + true if schduler should signal on scheduling change; otherwise, false. + + + + + Reports whether the is paused. + + + + + Gets the job store class. + + The job store class. + + + + Gets the thread pool class. + + The thread pool class. + + + + Gets the size of the thread pool. + + The size of the thread pool. + + + + Reports whether the has been Shutdown. + + + + + 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 internal s + registered with the . + + + + + Gets or sets the job factory. + + The job factory. + + + + Gets the running since. + + The running since. + + + + Gets the number of jobs executed. + + The number of jobs executed. + + + + Gets a value indicating whether this scheduler supports persistence. + + true if supports persistence; otherwise, false. + + + + Get a List containing all of the s + in the 's internal list. + + + + + + Get a list containing all of the s + in the 's internal list. + + + + + Helper class to start scheduler in a delayed fashion. + + + + + ErrorLogger - Scheduler Listener Class + + + + + The interface to be implemented by classes that want to be informed when 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 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 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. + + + + + Get the name of the . + + + + + Contains all of the resources (,, + etc.) necessary to create a instance. + + + James House + Marko Lahma (.NET) + + + + Gets the unique identifier. + + Name of the scheduler. + The scheduler instance id. + + + + + Gets the unique identifier. + + + + + + Add the given for the + to use. This method expects the plugin's + "initialize" method to be invoked externally (either before or after + this method is called). + + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the instance Id for the . + + + if name is null or empty. + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the for the + to use. + + + if threadPool is null. + + + + + Get or set the for the + to use. + + + if jobStore is null. + + + + + Get or set the for the + to use. + + + if jobRunShellFactory is null. + + + + + Get the of all s for the + to use. + + + + + + Gets or sets a value indicating whether to make scheduler thread daemon. + + + true if scheduler should be thread daemon; otherwise, false. + + + + + Gets or sets the scheduler exporter. + + 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 + s that are registered with the . + + + + + James House + Marko Lahma (.NET) + + + + Support class used to handle threads + + Marko Lahma (.NET) + + + + The instance of System.Threading.Thread + + + + + Initializes a new instance of the QuartzThread class + + + + + Initializes a new instance of the Thread class. + + The name of the thread + + + + This method has no functionality unless the method is overridden + + + + + Causes the operating system to change the state of the current thread instance to ThreadState.Running + + + + + Interrupts a thread that is in the WaitSleepJoin thread state + + + + + Blocks the calling thread until a thread terminates + + + + + Obtain a string that represents the current object + + A string that represents the current object + + + + Gets or sets the name of the thread + + + + + Gets or sets a value indicating the scheduling priority of a thread + + + + + Gets or sets a value indicating whether or not a thread is a background thread. + + + + + Gets the randomized idle wait time. + + 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 + attributes. + + + + + Signals the main processing loop to pause at the next possible point. + + + + + 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 + waiting for the fire time to arrive. + + + the time when the newly scheduled trigger + will fire. If this method is being called do to some other even (rather + than scheduling a trigger), the caller should pass null. + + + + + The main processing loop of the . + + + + + Trigger retry loop that is executed on error condition. + + The bndle. + + + + Releases the trigger retry loop. + + The trigger. + + + + Gets the log. + + The log. + + + + Sets the idle wait time. + + The idle wait time. + + + + Gets a value indicating whether this is paused. + + true if paused; otherwise, false. + + + + Gets or sets the db failure retry interval. + + The db failure retry interval. + + + + An interface to be used by instances in order to + communicate signals back to the . + + James House + Marko Lahma (.NET) + + + + An interface to be used by instances in order to + 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. + + + + + 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 + + + + Initializes this instance. Parses information and initializes startup + values. + + + + + Gets the name of the parameter which includes the parameter prefix for this + database. + + Name of the parameter. + + + Gets or sets the name of the assembly that holds the connection library. + The name of the assembly. + + + + Gets or sets the name of the product. + + The name of the product. + + + + Gets or sets the type of the connection. + + The type of the connection. + + + + Gets or sets the type of the command. + + The type of the command. + + + + Gets or sets the type of the parameter. + + The type of the parameter. + + + + Gets the type of the command builder. + + The type of the command builder. + + + Gets the command builder's derive parameters method. + The command builder derive parameters method. + + + + Gets or sets the parameter name prefix. + + The parameter name prefix. + + + + Gets or sets the type of the exception that is thrown when using driver + library. + + The type of the exception. + + + + Gets or sets a value indicating whether parameters are bind by name when using + ADO.NET parameters. + + true if parameters are bind by name; otherwise, false. + + + Gets or sets the type of the database parameters. + The type of the parameter db. + + + + Gets the parameter db type property. + + The parameter db type property. + + + + Gets the parameter is nullable property. + + The parameter is nullable property. + + + + Gets or sets the type of the db binary column. This is a string representation of + Enum element because this information is database driver specific. + + The type of the db binary. + + + Gets the type of the db binary. + The type of the db binary. + + + + Sets the name of the parameter db type property. + + The name of the parameter db type property. + + + + Gets or sets a value indicating whether [use parameter name prefix in parameter collection]. + + + true if [use parameter name prefix in parameter collection]; otherwise, false. + + + + + 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. + + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + 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. + + + + + Registers DB metadata information for given provider name. + + + + + + + Initializes a new instance of the class. + + Name of the db provider. + The connection string. + + + + 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. + + A new Command Builder + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + be portable (but more loosely typed) across .NET 1.1/2.0 + + + + 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. + + + + + + Gets the metadata. + + The metadata. + + + + This interface can be implemented by any + class that needs to use the constants contained herein. + + Jeffrey Wescott + James House + Marko Lahma(.NET) + + + + Simple Trigger type. + + + + + Cron Trigger type. + + + + + Calendar Interval Trigger type. + + + + + Daily Time Interval Trigger type. + + + + + 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 + + + + Common helper methods for working with ADO.NET. + + 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) + + + + + + + + + + Base class for database based lock handlers for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + same time. + + Marko Lahma (.NET) + + + + This class extends + to include the query string constants in use by the + class. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + An interface for providing thread/resource locking in order to protect + resources from being altered by multiple threads at the same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + 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 scheduler name + The SQL. + The default SQL. + The db provider. + + + + Execute the SQL that will lock the proper database row. + + + + + + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + + + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + + + + Gets or sets the lock owners. + + The lock owners. + + + + Gets the log. + + The log. + + + + This Semaphore implementation does use the database. + + + + + Gets or sets the table prefix. + + The table prefix. + + + + Initialization argumens holder for implementations. + + + + + 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. + + 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 + state. + + 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 + + + + 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 + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + 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. + + The DB Connection + Name of the group. + The state. + The timestamp. + An array of objects + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection + The number of rows deleted + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Insert the job detail record. + + The DB Connection + The job to insert. + Number of rows inserted. + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + + + + Delete the job detail record for the given job. + + The DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + Check whether or not the given job exists. + + The DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The DB Connection + The job. + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection + The key identifying the job. + The class load helper. + The populated JobDetail object + + + + Select the total number of jobs stored. + + The DB Connection + the total number of jobs stored + + + + Select all of the job group names that are stored. + + The DB Connection. + an array of group names + + + + Select all of the jobs contained in a given group. + + The DB Connection + + an array of job names + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection + The trigger to insert + The number of rows inserted + + + + Update the base trigger data. + + the DB Connection + The trigger. + The state. + The job detail. + the number of rows updated + + + + Update the blob trigger data. + + the DB Connection + The trigger. + the number of rows updated + + + + Check whether or not a trigger exists. + + the DB Connection + The key identifying the trigger. + the number of rows updated + + + + Update the state for a given trigger. + + The DB Connection + 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 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 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 + One of the old state the trigger must be in + + int the number of rows updated + + SQLException + + + + 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 + + + + 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 + + + + Update the states of all triggers associated with the given job. + + The DB Connection + 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 key identifying the job. + The new state for the triggers + The old state of the triggers + the number of rows updated + + + + Delete the BLOB trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + The number of rows deleted + + + + Delete the base trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + the number of rows deleted + + + + Select the number of triggers associated with a given job. + + The DB Connection + 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 key identifying the trigger. + The load helper. + + The object associated with the given trigger + + + + + Select the triggers for a job> + + The DB Connection + The key identifying the job. + an array of objects associated with a given job. + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + The DB Connection. + The key identifying the trigger. + The object. + + + + + Select a trigger's JobDataMap. + + The DB Connection. + The key identifying the trigger. + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + The DB Connection. + The key identifying the trigger. + The object. + + + + Select a triggers status (state and next fire time). + + The DB Connection. + The key identifying the trigger. + A object, or null + + + + Select the total number of triggers stored. + + The DB Connection. + The total number of triggers stored. + + + + Select all of the trigger group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the triggers contained in a given group. + + The DB Connection. + + An array of trigger names. + + + + Select all of the triggers in a given state. + + The DB Connection. + The state the triggers must be in. + An array of trigger s. + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows inserted. + + + + Update a calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows updated. + + + + Check whether or not a calendar exists. + + The DB Connection. + The name of the calendar. + true if the trigger exists, false otherwise. + + + + Select a calendar. + + The DB Connection. + The name of the calendar. + The Calendar. + + + + 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 + + + + Delete a calendar. + + The DB Connection + The name of the trigger. + The number of rows deleted. + + + + Select the total number of calendars stored. + + The DB Connection + The total number of calendars stored. + + + + Select all of the stored calendars. + + 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 + 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. + + The DB Connection + The trigger. + The state that the trigger should be stored in. + The job detail. + The number of rows inserted. + + + + 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 FiredTriggerRecord objects. + + + + 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 FiredTriggerRecord objects. + + + + 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. + + + + Delete a fired trigger. + + The DB Connection + The fired trigger entry to delete. + The number of rows deleted. + + + + Get the number instances of the identified job currently executing. + + The DB Connection + The key identifying the job. + + The number instances of the identified job currently executing. + + + + + Insert a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The interval. + The number of inserted rows. + + + + Delete a scheduler-instance state record. + + The DB Connection + The instance id. + The number of deleted rows. + + + + Update a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The number of updated rows. + + + + 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) + 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. + + + + Select the distinct instance names of all fired-trigger records. + + + This is useful when trying to identify orphaned fired triggers (a + fired trigger without a scheduler state record.) + + The conn. + + + + + Counts the misfired triggers in states. + + The conn. + The state1. + The ts. + + + + + Selects the misfired triggers in states. + + The conn. + The state1. + The ts. + The count. + The result list. + + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + Exception class for when a driver delegate cannot be found for a given + configuration, or lack thereof. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + Base class for exceptions thrown by the Quartz . + + + SchedulerExceptions may contain a reference to another + , which was the underlying cause of the SchedulerException. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The MSG. + + + + 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. + + The cause. + + + + Initializes a new instance of the class. + + The MSG. + The cause. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + 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 + Marko Lahma (.NET) + + + + Contains base functionality for ADO.NET-based JobStore implementations. + + Jeffrey Wescott + James House + Marko Lahma (.NET) + + + + The interface to be implemented by classes that want to provide a + and storage mechanism for the + 's use. + + + Storage of s and s should be keyed + on the combination of their name and group for uniqueness. + + + + + + + + James House + Marko Lahma (.NET) + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Store the given and . + + The to be stored. + The to be stored. + ObjectAlreadyExistsException + + + + returns true if the given JobGroup is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + Store the given . + + 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 + key, and any s that reference + it. + + + 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. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Store the given . + + 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 key. + + + + 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. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + The to be replaced. + The new to be stored. + + if a with the given + name and group was found and removed from the store. + + + + + Retrieve the given . + + + 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. + + + + the identifier to check for + true if a trigger exists with the given identifier + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Store the given . + + 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. + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + + 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. + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + + + + 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 names of all of the + groups. + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + + 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 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 ). + + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Get the current state of the identified . + + + + + + Pause the with the given key. + + + + + 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 key - by + pausing all of its current 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 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 the given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + + 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). + + + 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. + + + + + 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. + + + + + Indicates whether job store supports persistence. + + + + + + How long (in milliseconds) the implementation + estimates that it will take to release a trigger and acquire a new one. + + + + + Whether or not the implementation is clustered. + + + + + + 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. + + + + + Tells the JobStore the pool size used to execute jobs. + + + + + Initializes a new instance of the class. + + + + + Gets the connection and starts a new transaction. + + + + + + Called by the QuartzScheduler before the is + used, in order to give it a chance to Initialize. + + + + + + + + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Store the given and . + + Job to be stored. + Trigger to be stored. + + + + returns true if the given JobGroup + is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + 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. + + + + + Store the given . + + 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. + + + + + Insert or update a trigger. + + + + + Check existence of a given trigger. + + + + + Remove (delete) the with the given + name, and any s that reference + it. + + + + 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. + + + + + Delete a job and its listeners. + + + + + + + Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry. + + + + + + + + Retrieve the for the given + . + + The key identifying the job. + 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 key identifying the trigger. + + if a with the given + name & group was found and removed from the store. + + + + + + + + Retrieve the given . + + The key identifying the trigger. + The desired , or null if there is no match. + + + + Get the current state of the identified . + + + + + + + + + + Gets the state of the trigger. + + The conn. + The key identifying the trigger. + + + + + Store the given . + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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. + + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + 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 + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + 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 names of all of the + groups. + + + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + 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 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 ). + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Pause the with the given name. + + + + + Pause the with the given name. + + + + + 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. + + + + + + Determines if a Trigger for the given job should be blocked. + State can only transition to StatePausedBlocked/StateBlocked from + StatePaused/StateWaiting respectively. + + StatePausedBlocked, StateBlocked, or the currentState. + + + + Resume (un-pause) the with the + given name. + + + If the missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + 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. + + + + + + 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. + + + + + + Pause all of the s in the given group. + + + + + + Pause all of the s in the given group. + + + + + Pause all of the s in the + given group. + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + + 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. + + + + + + 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. + + + + + + + Get a handle to the next N triggers to be fired, and mark them as 'reserved' + by the calling scheduler. + + + + + + Inform the that the scheduler no longer plans to + fire the given , that it had previously acquired + (reserved). + + + + + 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. + + + + + 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. + + + + + Create dummy objects for fired triggers + that have no scheduler state record. Checkin timestamp and interval are + left as zero on these dummy objects. + + + List of all current s + + + + Cleanup the given database connection. This means restoring + any modified auto commit or transaction isolation connection + attributes, and then closing the underlying connection. + + + + 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. + + + + + + Closes the supplied connection. + + (Optional) + + + + Rollback the supplied connection. + + (Optional) + + JobPersistenceException thrown if a SQLException occurs when the + connection is rolled back + + + + + Commit the supplied connection. + + The CTH. + if set to true opens a new transaction. + JobPersistenceException thrown if a SQLException occurs when the + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + Execute the given callback having optionally acquired the given lock. + This uses the non-managed transaction connection. + + + 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. + + + + + Get or set the datasource name. + + + + + Gets the log. + + The log. + + + + Get or sets the prefix that should be pre-pended to all table names. + + + + + Set whether string-only properties will be handled in JobDataMaps. + + + + + Get or set the instance Id of the Scheduler (must be unique within a cluster). + + + + + Get or set the instance Id of the Scheduler (must be unique within this server instance). + + + + + Get or set whether this instance is part of a cluster. + + + + + 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. + + + + + 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. + + + + + Gets or sets the database retry interval. + + The db retry interval. + + + + Get or set whether this instance should use database-based thread + synchronization. + + + + + 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. + + + Setting this property to will provide a + significant performance increase during the addition of new jobs + and triggers. + + + + + 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. + + + + + 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. + + + + + Set the transaction isolation level of DB connections to sequential. + + + + + 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. + + + However, if batch acquisition is used, it is important for this behavior + to be used for all dbs. + + + + + Get or set the ADO.NET driver delegate class name. + + + + + The driver delegate's initialization string. + + + + + set the SQL statement to use to select and lock a row in the "locks" + table. + + + + + + Get whether the threads spawned by this JobStore should be + marked as daemon. Possible threads include the + and the . + + + + + + 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. + + + + + + Get the driver delegate for DB operations. + + + + + Get whether String-only properties will be handled in JobDataMaps. + + + + + Indicates whether this job store supports persistence. + + + + + + + An interface for classes wishing to provide the service of loading classes + and resources within the scheduler... + + James House + Marko Lahma (.NET) + + + + 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 + + + + + Helper class for returning the composite result of trying + to recover misfired jobs. + + + + + Initializes a new instance of the class. + + if set to true [has more misfired triggers]. + The processed misfired trigger count. + + + + + Gets a value indicating whether this instance has more misfired triggers. + + + true if this instance has more misfired triggers; otherwise, false. + + + + + Gets the processed misfired trigger count. + + The processed misfired trigger count. + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + + + 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 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. + + + + 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) + + + + 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 + Marko Lahma (.NET) + + + + An exception that is thrown to indicate that there has been a failure in the + scheduler's underlying persistence mechanism. + + James House + Marko Lahma (.NET) + + + + 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 cause. + + + + + + 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 + + + + 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) + + + + Initializes the driver delegate. + + + + + 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 + + + + Get the names of all of the triggers that have misfired. + + the DB Connection + The ts. + an array of objects + + + + Select all of the triggers in a given state. + + The DB Connection + The state the triggers must be in + an array of trigger s + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + An array of objects + + + + 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. + + + + Get the number of triggers in the given state that have + misfired - according to the given timestamp. + + + + + + + + + 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 + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection. + The number of rows deleted. + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Insert the job detail record. + + The DB Connection. + The job to insert. + Number of rows inserted. + + + + 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. + + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + An array of objects + + + + Delete the job detail record for the given job. + + the DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + + Check whether or not the given job exists. + + the DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The conn. + the job to update + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection. + The key identifying the job. + The load helper. + The populated JobDetail object. + + + build Map from java.util.Properties encoding. + + + + Select the total number of jobs stored. + + The DB Connection. + The total number of jobs stored. + + + + Select all of the job group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the jobs contained in a given group. + + The DB Connection. + + An array of job names. + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows inserted. + + + + 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. + + + + Update the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows updated. + + + + Check whether or not a trigger exists. + + The DB Connection. + the key of the trigger + true if the trigger exists, false otherwise + + + + Update the state for a given trigger. + + The DB Connection. + the key of 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. + + 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. + + + + 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. + + + + 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 + + + + 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 + + + + 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 + + + + Updates the state of the trigger states for job from other. + + The conn. + Key of the job. + The state. + The old state. + + + + + Delete the cron trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + Delete the base trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + 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 + + + + 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 + + + + Select the triggers for a job + + the DB Connection + the key of the job + + an array of objects + associated with a given job. + + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger's JobDataMap. + + the DB Connection + the key of the trigger + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger status (state and next fire time). + + the DB Connection + the key of the trigger + + a object, or null + + + + + Select the total number of triggers stored. + + the DB Connection + the total number of triggers stored + + + + Select all of the trigger group names that are stored. + + the DB Connection + + an array of group names + + + + + Select all of the triggers contained in a given group. + + the DB Connection + + + an array of trigger names + + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows inserted + IOException + + + + Update a calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows updated + IOException + + + + Check whether or not a calendar exists. + + the DB Connection + The name of the calendar. + + true if the trigger exists, false otherwise + + + + + Select a calendar. + + the DB Connection + The name of the calendar. + the Calendar + ClassNotFoundException + IOException + + + + 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 + + + + + Delete a calendar. + + the DB Connection + The name of the trigger. + the number of rows deleted + + + + Select the total number of calendars stored. + + the DB Connection + the total number of calendars stored + + + + Select all of the stored calendars. + + 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 + trigger that will be fired at the given fire time, or null if no + trigger will be fired at that time + + + + + 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. + + + + 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 + + + + + Update a fired trigger. + + + + + + the DB Connection + + the trigger + + + the state that the trigger should be stored in + the number of rows inserted + + + + 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. + + + + 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. + + + + 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. + + + + 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.) + + + + + Delete a fired trigger. + + the DB Connection + the fired trigger entry to delete + the number of rows deleted + + + + Selects the job execution count. + + The DB connection. + The key of the job. + + + + + Inserts the state of the scheduler. + + The conn. + The instance id. + The check in time. + The interval. + + + + + Deletes the state of the scheduler. + + The database connection. + The instance id. + + + + + Updates the state of the scheduler. + + The database connection. + The instance id. + The check in time. + + + + + 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. + + + + + Replace the table prefix in a query by replacing any occurrences of + "{0}" with the table prefix. + + The unsubstitued query + The query, with proper table prefix substituted + + + + Create a serialized version of an Object. + + 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. + + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs. The default implementation uses standard + ADO.NET operations. + + The data reader, already queued to the correct row. + The column index for the BLOB. + The deserialized object from the DataReader BLOB. + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs for job details. + + The result set, already queued to the correct row. + The column index for the BLOB. + The deserialized Object from the ResultSet BLOB. + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + 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) + + + + 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 Oracle database. + + Marko Lahma + + + + Creates the SQL for select next trigger to acquire. + + + + + Gets the db presentation for boolean value. For Oracle we use true/false of "1"/"0". + + Value to map to database. + + + + + Conveys a scheduler-instance state record. + + James House + Marko Lahma (.NET) + + + + Gets or sets the checkin interval. + + The checkin interval. + + + + Gets or sets the checkin timestamp. + + The checkin timestamp. + + + + Gets or sets the scheduler instance id. + + The scheduler instance id. + + + + Internal in-memory lock handler for providing thread/resource locking in + order to protect resources from being altered by multiple threads at the + same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + True if the lock was obtained. + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Gets the thread locks. + + The thread locks. + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + + This is a driver delegate for the SQLiteDelegate ADO.NET driver. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQLite version with LIMIT support. + + + + + + A SQL Server specific driver delegate. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQL Server specific version with TOP functionality + + + + + + Internal database based lock handler for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + 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. + + + + + + Provide thread/resource locking in order to protect + resources from being altered by multiple threads at the same time using + a db row update. + + + + Note: This Semaphore implementation is useful for databases that do + 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. + + + + + + + + + This implementation of the Calendar excludes a set of days of the year. You + may use it to exclude bank holidays which are on the same date every year. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + This implementation of the Calendar may be used (you don't have to) as a + base class for more sophisticated one's. It merely implements the base + functionality required by each Calendar. + + + Regarded as base functionality is the treatment of base calendars. Base + calendar allow you to chain (stack) as much calendars as you may need. For + example to exclude weekends you may use WeeklyCalendar. In order to exclude + holidays as well you may define a WeeklyCalendar instance to be the base + calendar for HolidayCalendar instance. + + + Juergen Donnerstag + James House + Marko Lahma (.NET) + + + + 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. + + + 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. + + + + + 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. + + + + + Set a new base calendar or remove the existing one. + Get the base calendar. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Initializes a new instance of the class. + + The time zone. + + + + Initializes a new instance of the class. + + The base calendar. + The time zone. + + + + Serialization constructor. + + + + + + + checks whether two arrays have + the same length and + for any given place there are equal elements + in both arrays + + + + + + 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. + + + + Gets or sets the time zone. + + The time zone. + + + + Gets or sets the description given to the instance by + its creator (if any). + + + + + Set a new base calendar or remove the existing one + + + + + + Constructor + + + + + Constructor + + 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. + + + + + + Get or the array which defines the exclude-value of each day of month. + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes the set of times expressed by a + given CronExpression. + + + 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 + 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 + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + 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 + 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. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the cron expression for the calendar to a new value. + + The expression. + + + + Returns the object representation of the cron expression that defines the + dates and times this calendar excludes. + + + + + This implementation of the Calendar excludes (or includes - see below) a + specified time range each day. + + + For example, you could use this calendar to + exclude business hours (8AM - 5PM) every day. Each + only allows a single time range to be specified, and that time range may not + * cross daily boundaries (i.e. you cannot specify a time range from 8PM - 5AM). + If the property is (default), + the time range defines a range of times in which triggers are not allowed to + * 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) + + + + Create a with a time range defined by the + specified strings and no baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • items enclosed in brackets ('[', ']') are optional.
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+
+ + + Create a with a time range defined by the + specified strings and the specified baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • + items enclosed in brackets ('[', ']') are optional. +
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The base calendar for this calendar instance see BaseCalendar for more + information on base calendar functionality. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. Values are subject to + the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified values and the specified . Values are + subject to the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified s and no + baseCalendar. The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendar.after(rangeEndingCalendar) == true) + +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified s and the specified + . The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendarUtc > rangeEndingCalendarUtc == true) +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. The values are + subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Create a with a time range defined by the + specified values and the specified . The values + are subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + + + + + + 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 0 if all days are excluded. + + + + + + + + Returns the start time of the time range of the day + specified in . + + + a DateTime representing the start time of the + time range for the specified date. + + + + + Returns the end time of the time range of the day + specified in + + + A DateTime representing the end time of the + time range for the specified date. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the time range for the to the times + represented in the specified Strings. + + The range starting time string. + The range ending time string. + + + + Sets the time range for the to the times + represented in the specified values. + + The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. + + + + Sets the time range for the to the times + represented in the specified s. + + The range starting calendar. + The range ending calendar. + + + + Sets the time range for the to the times + represented in the specified values. + + 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. + + The time. + + + + + Checks the specified values for validity as a set of time values. + + The hour of day. + The minute. + The second. + The millis. + + + + Indicates whether the time range represents an inverted time range (see + class description). + + true if invert time range; otherwise, false. + + + + This implementation of the Calendar stores a list of holidays (full days + that are excluded from scheduling). + + + The implementation DOES take the year into consideration, so if you want to + exclude July 4th for the next 10 years, you need to add 10 entries to the + exclude list. + + Sharada Jambula + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + 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. + + + + Add the given Date to the list of excluded days. Only the month, day and + year of the returned dates are significant. + + + + + Removes the excluded date. + + The date to remove. + + + + Returns a of Dates representing the excluded + days. Only the month, day and year of the returned dates are + significant. + + + + + This implementation of the Calendar excludes a set of days of the month. You + may use it to exclude every 1. of each month for example. But you may define + any day of a month. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Constructor + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if mday is defined to be exluded. + + + + + Redefine a certain day of the month to be excluded (true) or included + (false). + + + + + Check if all days are excluded. That is no day is included. + + 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. + + + + Get or set the array which defines the exclude-value of each day of month + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes a set of days of the week. You + may use it to exclude weekends for example. But you may define any day of + the week. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if wday is defined to be exluded. E. g. + saturday and sunday. + + + + + Redefine a certain day of the week to be excluded (true) or included + (false). Use enum to determine the weekday. + + + + + 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. + + + + + + Get the array with the week days. + Setting will redefine the array of days excluded. The array must of size greater or + equal 8. java.util.Calendar's constants like MONDAY should be used as + index. A value of true is regarded as: exclude it. + + + + + Matches using an AND operator on two Matcher operands. + + James House + Marko Lahma (.NET) + + + + Matchers can be used in various API methods to + select the entities that should be operated upon. + + James House + + + + + Create an AndMatcher that depends upon the result of both of the given matchers. + + + + + + + + + Matches on the complete key being equal (both name and group). + + + + jhouse + + + + Create an EverythingMatcher that matches all jobs. + + + + + + Create an EverythingMatcher that matches all triggers. + + + + + + Matches on group (ignores name) property of Keys. + + James House + Marko Lahma (.NET) + + + + An abstract base class for some types of matchers. + + James House + Marko Lahma (.NET) + + + + Create a GroupMatcher that matches groups equaling the given string. + + + + + + + Create a GroupMatcher that matches groups starting with the given string. + + + + + + + Create a GroupMatcher that matches groups ending with the given string. + + + + + + + Create a GroupMatcher that matches groups containing the given string. + + + + + + + Matches on the complete key being equal (both name and group). + + James House + Marko Lahma (.NET) + + + + Create a KeyMatcher that matches Keys that equal the given key. + + + + + + + + Matches on name (ignores group) property of Keys. + + James House + Marko Lahma (.NET) + + + + Create a NameMatcher that matches names equaling the given string. + + + + + + + Create a NameMatcher that matches names starting with the given string. + + + + + + + Create a NameMatcher that matches names ending with the given string. + + + + + + + Create a NameMatcher that matches names containing the given string. + + + + + + + Matches using an NOT operator on another Matcher. + + James House + Marko Lahma (.NET) + + + + Create a NotMatcher that reverses the result of the given matcher. + + + + + + + + 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. + + + + + + + + + Operators available for comparing string values. + + + + + The base abstract class to be extended by all triggers. + + + + 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 + Marko Lahma (.NET) + + + + Internal interface for managing triggers. This interface should not be used by the Quartz client. + + + + + Should not be used by end users. + + + + + The base interface with properties common to all s - + use to instantiate an actual Trigger. + + + + 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) + + + + Get a that is configured to produce a + schedule identical to this trigger's schedule. + + + + + + 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. + + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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 . + + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + 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. + + + + + Associate the with the given name with this Trigger. + + + + + Set the to be associated with the + . + + + + + 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. + + + + + + + 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; } + + + + + + Set the time at which the should quit repeating - + regardless of any remaining repeats (based on the trigger's particular + repeat settings). + + + + + + + + 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 not explicitly set, the default value is . + + + + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + 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. + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 + . + + + + + 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. + + + + 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. + + + + 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. + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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 . + + + + + + 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 next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. + + + + + 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. + + + + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + Return a simple string representation of this object. + + + + + 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. + + + + + + + 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. + + + + + Trigger equality is based upon the equality of the TriggerKey. + + + true if the key of this Trigger equals that of the given Trigger + + + + 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 . + + + + + Creates a new object that is a copy of the current instance. + + + 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. + + + if group is an empty string. + + + + + 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. + + + + + Returns the 'full name' of the in the format + "group.name". + + + + + Gets the key. + + The key. + + + + Returns the 'full name' of the that the + points to, in the format "group.name". + + + + + Get or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + 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. + + + + + + + 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. + + + + + 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) + + + + A that is used to fire a + based upon repeating calendar time intervals. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + Get the number of times the has already fired. + + + + + Gets the time zone within which time calculations related to this trigger will be performed. + + + If null, the system default TimeZone will be used. + + + + + 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). + + + + + + Create a with no settings. + + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + Validates the misfire instruction. + + The misfire instruction. + + + + + 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
  • +
+
+
+ + + 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). + + + + + + + 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). + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + + Get the time at which the should occur. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + Get the time at which the should quit + repeating. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + 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). + + + + + + Get 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. + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + 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' . + + + + + 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 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' . + + + + + 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. + + + + + SchedulerException + + + + 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. + + + + + + + + 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 + preventing garbage collection, and allowing 'global' lookups. + + James House + Marko Lahma (.NET) + + + + Binds the specified sched. + + The sched. + + + + Removes the specified sched name. + + Name of the sched. + + + + + Lookups the specified sched name. + + Name of the sched. + + + + + Lookups all. + + + + + + Gets the singleton instance. + + The instance. + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + Called by the to obtain instances of + . + + + + + An implementation of the interface that directly + proxies all method calls to the equivalent call on a given + instance. + + + + James House + Marko Lahma (.NET) + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Construct a instance to proxy the given + 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 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' . + + + + + 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. + UnableToInterruptJobException if the job does not implement + + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + 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. + + + + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + + + + + An implementation of that + does all of it's work of creating a instance + 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 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 + file will be set on the instance by calling an equivalent 'set' method. For + example if the properties file contains the property 'quartz.jobStore. + myProp = 10' then after the JobStore class has been instantiated, the property + '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. + + + + + Initializes a new instance of the class. + + The props. + + + + 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 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. + + + + + Creates a new name value collection and overrides its values + with system values (environment variables). + + The base properties to override. + A new NameValueCollection instance. + + + + Initialize the with + 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 + will be called by this method. + + + + + Returns a handle to the Scheduler with the given name, if it exists (if + it has already been instantiated). + + + + + + Returns a handle to all known Schedulers (made by any + StdSchedulerFactory instance.). + + + + + + 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) + + + + + The interface to be implemented by classes which represent a 'job' to be + performed. + + + Instances of this interface must have a + 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 + 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. + + + 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 + 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. + + + + + + Gets the last modified date. + + Name of the file. + + + + + Gets the log. + + 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) + + + + + Ïnforms that certain file has been updated. + + Name of the file. + + + + 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) + + + + Required parameter that specifies the name of the command (executable) + to be ran. + + + + + Optional parameter that specifies the parameters to be passed to the + executed command. + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the job should wait for the execution of the native process to + complete before it completes. + + Defaults to . + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the spawned process's stdout and stderr streams should be + consumed. If the process creates output, it is possible that it might + 'hang' if the streams are not consumed. + + Defaults to . + + + + + Optional parameter that specifies the workling directory to be used by + the executed command. + + + + + Initializes a new instance of the class. + + + + + 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. + + + + + + + Gets the log. + + The log. + + + + Consumes data from the given input stream until EOF and prints the data to stdout + + cooste + James House + + + + Initializes a new instance of the class. + + The enclosing instance. + The input stream. + The type. + + + + Runs this object as a separate thread, printing the contents of the input stream + supplied during instantiation, to either Console. or stderr + + + + + An implementation of Job, that does absolutely nothing - useful for system + which only wish to use s + and s, rather than writing + Jobs that perform work. + + James House + Marko Lahma (.NET) + + + + Do nothing. + + + + + A Job which sends an e-mail with the configured content to the configured + recipient. + + James House + Marko Lahma (.NET) + + + The host name of the smtp server. REQUIRED. + + + The e-mail address to send the mail to. REQUIRED. + + + The e-mail address to cc the mail to. Optional. + + + The e-mail address to claim the mail is from. REQUIRED. + + + The e-mail address the message should say to reply to. Optional. + + + The subject to place on the e-mail. REQUIRED. + + + 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 + events to them (in order). + + + This 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 + 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 TriggerListener 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) + + + + The interface to be implemented by classes that want to be informed when 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 + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + + The that will be passed to the 's method. + + + + + 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. 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 + 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. + + + + 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. + + + + + 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. + + + + the name of this instance + the initial List of TriggerListeners to broadcast to. + + + + Keeps a collection of mappings of which Job to trigger after the completion + of a given job. If this listener is notified of a job completing that has a + mapping, then it will then attempt to trigger the follow-up job. This + 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) + + + + + Initializes a new instance of the class. + + + + + 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 + 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. + + + + + + + Get the for this class's category. + This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Construct an instance with the given name. + + 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 JobKey with the name and group of the first job + a JobKey with the name and group of the follow-up job + + + + 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) + + + + + Get the for this + class's category. This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Logs a history of all job executions (and execution vetos) via common + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8ObjectThe string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8StringThe message from the thrown JobExecution Exception. +
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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) +
+ + + Provides an interface for a class to become a "plugin" to Quartz. + + + Plugins can do virtually anything you wish, though the most interesting ones + 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) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + 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. + + + The scheduler to which the plugin is registered. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + 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 when a + was about to be executed (an associated + has occured), but a vetoed it's + execution. + + + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or sets the message that is logged when a Job successfully completes its + execution. + + + + + Get or sets the message that is logged when a Job fails its + execution. + + + + + Gets or sets the message that is logged when a Job is about to Execute. + + + + + Gets or sets the message that is logged when a Job execution is vetoed by a + trigger listener. + + + + + Get the name of the . + + + + + + Logs a history of all trigger firings via the Jakarta Commons-Logging + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time. (the time the misfire was detected/handled)
5StringThe Job's name.
6StringThe Job's group.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe job completion time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
8IntegerThe trigger's resulting instruction code.
9StringA human-readable translation of the trigger's resulting instruction + code.
+ + 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) +
+ + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called by the when a + has fired, and it's associated + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + The that will be passed to the 's method. + + + + 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. + + + + 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. + + + + 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. + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or set the message that is printed upon the completion of a trigger's + firing. + + + + + Get or set the message that is printed upon a trigger's firing. + + + + + Get or set the message that is printed upon a trigger's mis-firing. + + + + + Get the name of the . + + + + + + This plugin catches the event of the VM terminating (such as upon a CRTL-C) + and tells the scheuler to Shutdown. + + + James House + Marko Lahma (.NET) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Determine whether or not the plug-in is configured to cause a clean + Shutdown of the scheduler. + + The default value is . + + + + + + + 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 + file for changes. + + + The periodically scanning of files for changes is not currently supported in a + clustered environment. + + James House + Pierre Awaragi + + + + Initializes a new instance of the class. + + + + + + + + + + + Called during creation of the in order to give + the a chance to initialize. + + The name. + 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. + + + + + 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 . + + + + + Information about a file that should be processed by . + + + + + Default object serialization strategy that uses + under the hood. + + Marko Lahma + + + + Interface for object serializers. + + Marko Lahma + + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize, always non-null. + + + + Deserializes object from byte array presentation. + + Data to deserialize object from, always non-null and non-empty. + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize. + + + + Deserializes object from byte array presentation. + + 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 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 + + The clusterwide unique instance id. + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + A JobFactory that instantiates the Job instance (using the default no-arg + 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 + Marko Lahma (.NET) + + + + The default JobFactory used by Quartz - simply calls + on the job class. + + + + James House + Marko Lahma (.NET) + + + + A JobFactory is responsible for producing instances of + classes. + + + This interface 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. + + + + + 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 + Scheduler will move all triggers associated with the Job into the + 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. + + 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. + + + 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 + Scheduler will move all triggers associated with the Job into the + 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 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 + Scheduler will move all triggers associated with the Job into the + 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 newly instantiated Job + SchedulerException if there is a problem instantiating the Job. + + + + Sets the object properties. + + The object to set properties to. + The data to set. + + + + Whether the JobInstantiation should fail and throw and exception if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + Get or set whether a warning should be logged if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + 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 + Marko Lahma (.NET) + + + + 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 + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Clears (deletes!) all scheduling data - all s, s + s. + + + + + Store the given and . + + 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 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. + + + if a with the given name and + group was found and removed from the store. + + + + + Remove (delete) the with the + given name. + + + if a with the given + name and group was found and removed from the store. + + + + + Store the given . + + 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. + + + + if a with the given + name and group was found and removed from the store. + + The to be removed. + Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger. + + + + Replaces the trigger. + + The of the to be replaced. + The new trigger. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Retrieve the given . + + + 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 . + + + + + + + + + + + Store the given . + + 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 . + + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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 + 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 + that have the given group name. + + + + + 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. + + + + + + Gets the trigger wrappers for calendar. + + Name of the cal. + + + + + Pause the with the given name. + + + + + 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 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 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 the + given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + Applies the misfire. + + 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 + (reserved). + + + + + Inform the that the scheduler is now firing the + 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 + associated ), and that the + in the given should be updated if the + is stateful. + + + + + Sets the state of all triggers of job to specified state. + + + + + Peeks the triggers. + + + + + + + + + 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. + + + + + Returns whether this instance supports persistence. + + + + + + + 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. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Possible internal trigger states + in RAMJobStore + + + + + Waiting + + + + + Acquired + + + + + Executing + + + + + Complete + + + + + Paused + + + + + Blocked + + + + + Paused and Blocked + + + + + Error + + + + + Helper wrapper class + + + + + The key used + + + + + Job's key + + + + + The trigger + + + + + Current state + + + + + 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. + + + + + 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 . + + + + + Scheduler exporter that exports scheduler to remoting context. + + Marko Lahma + + + + Service interface for scheduler exporters. + + Marko Lahma + + + + Binds (exports) scheduler to external context. + + + + + + Unbinds scheduler from external context. + + + + + + Registers remoting channel if needed. This is determined + by checking whether there is a positive value for port. + + + + + Gets or sets the port used for remoting. + + + + + Gets or sets the name to use when exporting + scheduler to remoting context. + + + + + Gets or sets the name to use when binding to + tcp channel. + + + + + Sets the channel type when registering remoting. + + + + + + Sets the used when + exporting to remoting context. Defaults to + . + + + + + A implementation that creates + connection to remote scheduler using remoting. + + + + + Client Proxy to a IRemotableQuartzScheduler + + + + + Returns a client proxy to a remote . + + + + + Returns a client proxy to a remote . + + + + + Gets or sets the remote scheduler address. + + 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) + + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + 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) + + + + The interface to be implemented by classes that want to provide a thread + pool for the 's use. + + + implementation instances should ideally be made + for the sole use of Quartz. Most importantly, when the method + returns a value of 1 or greater, + there must still be at least one available thread in the pool when the + method is called a few moments (or + many moments) later. If this assumption does not hold true, it may + result in extra JobStore queries and updates, and if clustering features + are being used, it may result in greater imballance of load. + + + James House + Marko Lahma (.NET) + + + + 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 implementation of this method should block until there is at + least one available thread. + + the number of currently available threads + + + + Must be called before the is + used, in order to give the it a chance to Initialize. + + + Typically called by the . + + + + + Called by the QuartzScheduler to inform the + that it should free up all of it's resources because the scheduler is + shutting down. + + + + + 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. + + + + + Create a new (unconfigured) . + + + + + Create a new with the specified number + of s that have the given priority. + + + the number of worker s in the pool, must + be > 0. + + + the thread priority for the worker threads. + + + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Run the given object in the next available + . If while waiting the thread pool is asked to + shut down, the Runnable is executed immediately within a new additional + thread. + + The to be added. + + + + Creates the worker threads. + + The thread count. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Gets or sets the number of worker threads in the pool. + Set has no effect after has been called. + + + + + Get or set the thread priority of worker threads in the pool. + Set operation has no effect after has been called. + + + + + Gets or sets the thread name prefix. + + The thread name prefix. + + + + Gets or sets the value of makeThreadsDaemons. + + + + + Gets the size of the pool. + + 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. + + + + + Create a worker thread and start it. Waiting for the next Runnable, + executing it, and waiting for the next Runnable, until the Shutdown + flag is set. + + + + + Create a worker thread, start it, Execute the runnable and terminate + the thread (one time execution). + + + + + Signal the thread that it should terminate. + + + + + Loop, executing targets as they are received. + + + + + A that simply calls . + + + James House + Marko Lahma (.NET) + + + + 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 Uri 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 Stream object + + + + + InstanceIdGenerator that will use a to configure the scheduler. + If no value set for the property, a is thrown. + Alex Snaps + + + + + System property to read the instanceId from. + + + + + Returns the cluster wide value for this scheduler instance's id, based on a system property. + + + + + A string of text to prepend (add to the beginning) to the instanceId found in the system property. + + + + + A string of text to postpend (add to the end) to the instanceId found in the system property. + + + + + The name of the system property from which to obtain the instanceId. + + + Defaults to . + + + + + This is class is a simple implementation of a zero size thread pool, based on the + 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 + Marko Lahma (.NET) + + + + 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. + + + + 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 simple class (structure) used for returning execution-time data from the + JobStore to the . + + + James House + Marko Lahma (.NET) + + + + 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. + + + + + Result holder for trigger firing event. + + + + + Constructor. + + + + + + Constructor. + + + + + Bundle. + + + + + Possible exception. + + + + + Extension methods for . + + + + + Tries to read value and returns the value if successfully read. Otherwise return default value + for value's type. + + + + + + + + + + Extension methods for simplified access. + + + + + Returns string from given column name, or null if DbNull. + + + + + Returns int from given column name. + + + + + Returns long from given column name. + + + + + Returns long from given column name, or null if DbNull. + + + + + Returns decimal from given column name. + + + + + Manages a collection of IDbProviders, and provides transparent access + to their database. + + + James House + Sharada Jambula + Mohammad Rezaei + Marko Lahma (.NET) + + + + 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. + + Name of the ds. + + + + + Get the class instance. + + an instance of this class + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified. + + James House + Marko Lahma (.NET) + + + + Create a DirtyFlagMap that 'wraps' a . + + + + + Create a DirtyFlagMap that 'wraps' a that has the + given initial capacity. + + + + + Serialization constructor. + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + When implemented by a class, removes all elements from the . + + + The is read-only. + + + + + When implemented by a class, determines whether the contains an element with the specified key. + + 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 key of the element to remove. + + is . + + The is read-only. + -or- + The has a fixed size. + + + + + When implemented by a class, returns an + for the . + + + An for the . + + + + + When implemented by a class, adds an element with the provided key and value to the . + + 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. + + 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 ). + + + + + Determines whether the specified obj contains value. + + The obj. + + true if the specified obj contains value; otherwise, false. + + + + + Gets the entries as a set. + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets keyset for this map. + + + + + + Puts the value behind a specified key. + + The key. + The val. + + + + + Puts all. + + The t. + + + + Determine whether the is flagged dirty. + + + + + Get a direct handle to the underlying Map. + + + + + Gets a value indicating whether this instance is empty. + + true if this instance is empty; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + When implemented by a class, gets the number of + elements contained in the . + + + + + + When implemented by a class, gets an containing the values in the . + + + + + + When implemented by a class, gets an containing the keys of the . + + + + + + When implemented by a class, gets a value indicating whether the + is read-only. + + + + + + When implemented by a class, gets a value indicating whether the + has a fixed size. + + + + + + When implemented by a class, gets an object that + can be used to synchronize access to the . + + + + + + When implemented by a class, gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + Utility class for file handling related things. + + Marko Lahma + + + + Resolves file to actual file if for example relative '~' used. + + File name to check + Expanded file name or actual no resolving was done. + + + + Object representing a job or trigger key. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + The default group for scheduling entities, with the value "DEFAULT". + + + + + Construct a new key with the given name and group. + + the name + the group + + + + Return the string representation of the key. The format will be: + <group>.<name>. + + + + the string representation of the key + + + + + Get the name portion of the key. + + the name + + + + + Get the group portion of the key. + + + + 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. + + Marko Lahma .NET + + + + 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 + + + + 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. + + + + Empties a data slot with the specified name. + + The name of the data slot to empty. + + + + Generic extension methods for objects. + + + + + Creates a deep copy of object by serializing to memory stream. + + + + + + Utility methods that are used to convert objects from one type into another. + + Aleksandar Seovic + Marko Lahma + + + + 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. + + + + 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. + + + + + Instantiates an instance of the type specified. + + + + + + Sets the object properties using reflection. + + + + + Sets the object properties using reflection. + + The object to set values to. + The properties to set to object. + + + + This is an utility class used to parse the properties. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + The props. + + + + Gets the string property. + + The name. + + + + + Gets the string property. + + The name. + The default value. + + + + + Gets the string array property. + + The name. + + + + + Gets the string array property. + + The name. + The default value. + + + + + Gets the boolean property. + + The name. + + + + + Gets the boolean property. + + The name. + if set to true [defaultValue]. + + + + + Gets the byte property. + + The name. + + + + + Gets the byte property. + + The name. + The default value. + + + + + Gets the char property. + + The name. + + + + + Gets the char property. + + The name. + The default value. + + + + + Gets the double property. + + The name. + + + + + Gets the double property. + + The name. + The default value. + + + + + Gets the float property. + + The name. + + + + + Gets the float property. + + The name. + The default value. + + + + + Gets the int property. + + The name. + + + + + Gets the int property. + + The name. + The default value. + + + + + Gets the int array property. + + The name. + + + + + Gets the int array property. + + The name. + The default value. + + + + + Gets the long property. + + The name. + + + + + Gets the long property. + + The name. + The def. + + + + + Gets the TimeSpan property. + + The name. + The def. + + + + + Gets the short property. + + The name. + + + + + Gets the short property. + + The name. + The default value. + + + + + Gets the property groups. + + The prefix. + + + + + Gets the property group. + + The prefix. + + + + + Gets the property group. + + The prefix. + if set to true [strip prefix]. + + + + + 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. + + + + Reads the properties from assembly (embedded resource). + + The file name to read resources from. + + + + + Reads the properties from file system. + + The file name to read resources from. + + + + + Gets the underlying properties. + + The underlying properties. + + + + Extension methods for . + + + + + Allows null-safe trimming of string. + + + + + + + Trims string and if resulting string is empty, null is returned. + + + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified, enforces that all keys are + strings. + + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The initial capacity. + + + + Serialization constructor. + + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets the keys. + + + + + + Adds the name-value pairs in the given to the . + + All keys must be s, and all values must be serializable. + + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reports JobSchedulingDataProcessor validation exceptions. + + Chris Bonham + Marko Lahma (.NET) + + + + Constructor for ValidationException. + + + + + Constructor for ValidationException. + + exception message. + + + + Constructor for ValidationException. + + collection of validation exceptions. + + + + 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. + + + + Gets the validation exceptions. + + The validation exceptions. + + + + Returns the detail message string. + + + + + 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) + + + + Constructor for XMLSchedulingDataProcessor. + + + + + Process the xml file in the default location (a file named + "quartz_jobs.xml" in the current working directory). + + + + + Process the xml file named . + + meta data file name. + + + + Process the xmlfile named with the given system + ID. + + Name of the file. + The system id. + + + + Process the xmlfile named with the given system + ID. + + The stream. + The system id. + + + + 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. + + + + + + Process the xml file in the default location, and schedule all of the + jobs defined within it. + + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + meta data file name. + The scheduler. + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + Name of the file. + The system id. + The sched. + + + + Schedules the given sets of jobs and triggers. + + The sched. + + + + Adds a detected validation exception. + + The exception. + + + + Resets the the number of detected validation exceptions. + + + + + Throws a ValidationException if the number of validationExceptions + detected is greater than zero. + + + DTD validation exception. + + + + + Whether the existing scheduling data (with same identifiers) will be + overwritten. + + + 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. + + + + + + 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 log. + + The log. + + + + Helper class to map constant names to their values. + + + + + CalendarIntervalScheduleBuilder is a + that defines calendar time (day, week, month, year) interval-based + schedules for Triggers. + + + + 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); + + + + + + + + + + + Base class for implementors. + + + + + + Schedule builders offer fluent interface and are responsible for creating schedules. + + + + + + + + + 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. + + + + + + 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. + + + + + + Create a CalendarIntervalScheduleBuilder. + + + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.HOUR that the produced + Trigger will repeat at. + + + + the number of hours at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.DAY that the produced + Trigger will repeat at. + + + + the number of days at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 + + + + + + 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 + + + + + + Specify an interval in the IntervalUnit.YEAR that the produced + Trigger will repeat at. + + + + the number of years at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + TimeZone in which to base the schedule. + + the time-zone for the schedule + the updated CalendarIntervalScheduleBuilder + + + + + 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). + + + + + + Extension methods that attach to . + + + + + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - /// /
Minutes 0-59 , - /// /
Hours 0-23 , - /// /
Day-of-month 1-31 , - /// ? / L W C
Month 1-12 or JAN-DEC , - /// /
Day-of-Week 1-7 or SUN-SAT , - /// ? / L #
Year (Optional) empty, 1970-2199 , - /// /
+ + 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 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 + 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. + + + + + 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. + + + + + Hours. + + + + + Days of month. + + + + + Months. + + + + + Days of week. + + + + + Years. + + + + + Last day of week. + + + + + 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. + + + 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. + + + + + Gets the numeric value from string. + + The string to parse from. + The i. + + + + + Gets the month number. + + The string to map with. + + + + + Gets the day of week number. + + The s. + + + + + Gets the time from given time parts. + + The seconds. + The minutes. + The hours. + The day of month. + The month. + + + + + Gets the next fire time after the given time. + + The UTC time to start searching from. + + + + + Creates the date time without milliseconds. + + The time. + + + + + Advance the calendar to the particular hour paying particular attention + to daylight saving problems. + + The date. + The hour. + + + + + Gets the time before. + + The end time. + + + + + NOT YET IMPLEMENTED: Returns the final time that the + will match. + + + + + + Determines whether given year is a leap year. + + The year. + + 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. + + + A new object that is a copy of this instance. + + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Sets or gets the time zone for which the of this + will be resolved. + + + + + Gets the cron expression string. + + The cron expression string. + + + + Helper class for cron expression handling. + + + + + The value. + + + + + The position. + + + + + 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); + + + + + + + + + + + + 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. + + + + + + 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 + + + + + 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 + + + + + Create a CronScheduleBuilder with the given cron-expression. + + the cron expression to base the schedule on. + the new CronScheduleBuilder + + + + + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire every day at the given time (hour and minute). + + + + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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 + + + + + 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). + + + + the day of the week to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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). + + + + the day of the month to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + The in which to base the schedule. + + + + the time-zone for the schedule. + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + Extension methods that attach to . + + + + + A implementation that build schedule for DailyTimeIntervalTrigger. + + + + 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); + + + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) + + + + A set of all days of the week. + + + The set contains all values between and + + + + + A set of the business days of the week (for locales similar to the USA). + + + The set contains all values between and + + + + + A set of the weekend days of the week (for locales similar to the USA). + + + The set contains and + + + + + Create a DailyTimeIntervalScheduleBuilder + + The new DailyTimeIntervalScheduleBuilder + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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> + + + + + + 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> + + + + + + Specify an interval in the IntervalUnit.Hour that the produced + Trigger will repeat at. + + The number of hours at which the trigger should repeat. + the updated DailyTimeIntervalScheduleBuilder> + + + + + + 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 + + + + Set the trigger to fire on the given days of the week. + + a variable length list of week days representing the days of the week + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days from Monday through Friday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days Saturday and Sunday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on all days of the week. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to begin firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the startTimeOfDay for this trigger to end firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Calculate and set the EndTimeOfDay using count, interval and StarTimeOfDay. This means + that these must be set before this method is call. + + + the updated DailyTimeIntervalScheduleBuilder + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + Set number of times for interval to repeat. + + + Note: if you want total count = 1 (at start time) + repeatCount + + + + + + + Extension methods that attach to . + + + + + DateBuilder is used to conveniently create + instances that meet particular criteria. + + + + 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); + + + + + + + + Create a DateBuilder, with initial settings for the current date + and time in the system default timezone. + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the system default timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + Time zone to use. + + + + + Build the defined by this builder instance. + + New date time based on builder parameters. + + + + Set the hour (0-23) for the Date that will be built by this builder. + + + + + + + Set the minute (0-59) for the Date that will be built by this builder. + + + + + + + Set the second (0-59) for the Date that will be built by this builder, and truncate the milliseconds to 000. + + + + + + + Set the day of month (1-31) for the Date that will be built by this builder. + + + + + + + Set the month (1-12) for the Date that will be built by this builder. + + + + + + + Set the year for the Date that will be built by this builder. + + + + + + + Set the TimeZoneInfo for the Date that will be built by this builder (if "null", system default will be used) + + + + + + + Get a object that represents the given time, on + tomorrow's date. + + + + + + + + + Get a object that represents the given time, on + today's date (equivalent to . + + + + + + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + + 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 + + + + 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 + + + + 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 + + + + Returns a date that is rounded to the next even second after the current time. + + the new rounded date + + + + 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 + + + + 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 + + + + 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 + +
+ + + 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 + + + + + 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) + + + + 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) + + + + Called by the when a user + interrupts the . + + void (nothing) if job interrupt is successful. + + + + Supported interval units used by . + + + + + 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) + + + + 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); + + + + + + + + + Create a JobBuilder with which to define a . + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Produce the instance defined by this JobBuilder. + + the defined JobDetail. + + + + Use a with the given name and default 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 updated JobBuilder + + + + + + 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 + + + + + + Use a to identify the JobDetail. + + + 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 + + + + + + Set the given (human-meaningful) description of the Job. + + the description for the Job + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + 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 + + + + + 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 + + + + 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 updated JobBuilder + + + + + 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 + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + 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 + + + + + Holds state information for instances. + + + 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) + + + + Create an empty . + + + + + Create a with the given data. + + + + + Create a with the given data. + + + + + Serialization constructor. + + + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + 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 . + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Gets the date time. + + The key. + + + + + 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 + occurred while executing, and whether or not the requests + to be re-fired immediately (using the same , + or whether it wants to be unscheduled. + + + Note that if the flag for 'refire immediately' is set, the flags for + unscheduling the Job are ignored. + + + + + James House + Marko Lahma (.NET) + + + + Create a JobExcecutionException, with the 're-fire immediately' flag set + to . + + + + + Create a JobExcecutionException, with the given cause. + + The cause. + + + + Create a JobExcecutionException, with the given message. + + + + + Initializes a new instance of the class. + + The message. + The original cause. + + + + Create a JobExcecutionException with the 're-fire immediately' flag set + to the given value. + + + + + Create a JobExcecutionException with the given underlying exception, and + the 're-fire immediately' flag set to the given value. + + + + + Create a JobExcecutionException with the given message, and underlying + exception, and the 're-fire immediately' flag set to the given value. + + + + + 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. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + Gets or sets a value indicating whether to unschedule firing trigger. + + + true if firing trigger should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to unschedule all triggers. + + + true if all triggers should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to refire immediately. + + 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) + + + + Instruction not set (yet). + + + + + 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. + + + + + Instructs the that upon a mis-fire + 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 + 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. + + + + 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 + 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 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 + 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 + 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 + 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 + 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 + to go directly to the 'COMPLETE' state if all the end-time of the trigger + has arrived. + + + + + + misfire instructions for CronTrigger + + + + + 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 NthIncludedDayTrigger + + + + + Instructs the that upon a mis-fire situation, the + wants to be fired now by the + + + + + + Instructs the that upon a mis-fire situation, the + wants to have + nextFireTime updated to the next time in the schedule after + 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 + , or + that is not excluded by the associated + calendar. + + + When determining what the Nth day of the month or year + is, will skip excluded days on the + associated calendar. This would commonly be used in an Nth + business day situation, in which the user wishes to fire a particular job on + the Nth business day (i.e. the 5th business day of + 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 + values can be changed using the , , and + 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 + 1 W 1 2 3 4 5 W 1 2 W + W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W + W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W + W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W + W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30 + W + + Where W's represent weekend days, and H's represent holidays, all of which + are excluded on a calendar associated with an + with n=5 and + intervalType=IntervalTypeMonthly. In this case, the trigger + would fire on the 8th of July (because of the July 4 holiday), + the 5th of August, and the 8th of September (because + of Labor Day). + + Aaron Craven + Marko Lahma (.NET) + + + + Indicates a monthly trigger type (fires on the Nth included + day of every month). + + + + indicates a yearly trigger type (fires on the Nth included + day of every year). + + + + + Indicates a weekly trigger type (fires on the Nth included + day of every week). When using this interval type, care must be taken + not to think of the value of as an analog to + . Such a comparison can only + be drawn when there are no calendars associated with the trigger. To + illustrate, consider an with + n = 3 which is associated with a Calendar excluding + non-weekdays. The trigger would fire on the 3rd + included day of the week, which would be 4th + actual day of the week. + + + + + Create an with no specified name, + 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 + called before the can be placed into + a . + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + the group for the + + + + + Create an with the given name and + 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=, + fireAtTime="12:00"). + + The name for the . + The group for the . + The name of the job to associate with the . + The group containing the job to associate with the . + + + + Returns the next UTC time at which the + will fire. If the trigger will not fire again, will be + 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 + + + + + Returns the previous UTC time at which the + fired. If the trigger has not yet + fired, will be returned. + + 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 + weeks after the given date/time, will be returned. For + triggers with intervalType = + + , if the trigger will not fire within 12 + months after the given date/time, will be returned. + For triggers with intervalType = + + , if the trigger will not fire within 12 + 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, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + + the first time the trigger will fire following the specified date + + + + + 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). + + + + + 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 ). + + + + + Called after the has executed the + associated with the in order + to get the final instruction code from the trigger. + + + The that was used by the + 's method. + + + The thrown by the + , if any (may be ) + + one of the Trigger.INSTRUCTION_XXX constants. + + + + + 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 + + + + + A boolean indicator of whether the trigger could potentially fire + again. + + + + + Indicates whether is a valid misfire + instruction for this . + + Whether is valid. + + + Updates the 's state based on the + MisfireInstruction that was selected when the + was created +

+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY, + then the instruction will be interpreted as + . +

+
+ a new or updated calendar to use for the trigger + +
+ + + Updates the 's state based on the + given new version of the associated . + + A new or updated calendar to use for the trigger + the amount of time that must + be between "now" and the time the next + firing of the trigger is supposed to occur. + + + + + Calculates the first time an with + intervalType = IntervalTypeWeekly will fire + after the specified date. See for more + information. + + The time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + date + + + + + Calculates the first UTC time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified date + + + + Calculates the first time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + 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 + should fire. If the Nth + day of the interval does not exist (i.e. the 32nd of a + month), the trigger simply will never fire. N may not be less than 1. + + + + + Returns the interval type for the . + + + Sets the interval type for the . If + , the trigger will fire on the + Nth included day of every month. If + , the trigger will fire on the + Nth included day of every year. If + , the trigger will fire on the + Nth included day of every week. + + + + + + + + Returns the fire time for the as a + string with the format "HH:MM[:SS]", with HH representing the + 24-hour clock hour of the fire time. Seconds are optional and their + inclusion depends on whether or not they were provided to + . + + + + + Returns the for the + . + + + + 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. + + + + + + Returns the last UTC time the will fire. + If the trigger will not fire at any point between + and , will be returned. + + the last time the trigger will fire. + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + + Sets or gets the time zone in which the will be resolved. + If no time zone is provided, then the default time zone will be used. + + + + + + + Gets or sets the trigger's calendar week rule. + + The trigger calendar week rule. + + + + Gets or sets the trigger's calendar first day of week rule. + + The trigger calendar first day of week. + + + + An exception that is thrown to indicate that an attempt to store a new + 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. + + + + + + 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 and auto-generate a + 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 . + + + + 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 + the - or one of the components it + configures. + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given message + and cause. + + + + + 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. + + + + 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 + has no further instructions. + + + + + 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 + ability to 'see' anything placed in the context by its last execution). + + + + + Instructs the that the + should be put in the state. + + + + + Instructs the that the + wants itself deleted. + + + + + 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 + this one should be put in the state. + + + + + Instructs the that the + should be put in the state. + + + + + Describes the settings and capabilities of a given + instance. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + Name of the scheduler. + The scheduler instance. + The scheduler type. + if set to true, scheduler is a remote scheduler. + if set to true, scheduler is started. + 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 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. + + + + Returns a formatted (human readable) string describing all the 's + 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.
+            
+
+
+
+ + + Return a simple string representation of this object. + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the class-name of the instance. + + + + + Returns whether the is being used remotely (via remoting). + + + + + Returns whether the scheduler has been started. + + + Note: may return even if + returns . + + + + + Reports whether the is in standby mode. + + + Note: may return even if + returns . + + + + + Reports whether the has been Shutdown. + + + + + Returns the class-name of the instance that is + being used by the . + + + + + Returns the type name of the instance that is + being used by the . + + + + + Returns the number of threads currently in the 's + + + + + Returns the version of Quartz that is 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.. + + + + + Returns whether or not the 's + instance supports persistence. + + + + + Returns whether or not the 's + is clustered. + + + + + 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 SimpleScheduleBuilder. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 minute interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of minutes. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 second interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of seconds. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 hour interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of hours. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 minute interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of minutes. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 second interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of seconds. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 hour interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + 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 + + + + 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. + + + + + + + + Specify a repeat interval in milliseconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + Specify a repeat interval in seconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + 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 + + + + + + Specify that the trigger will repeat indefinitely. + + + + the updated SimpleScheduleBuilder + + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + 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. + + + + + 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 + + + + 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. + + + + 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. + + + + Gets the rule. + + The rule. + + + + Possible parse rules for s. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TriggerBuilder 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 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); + + + + + + + + + + Create a new TriggerBuilder with which to define a + specification for a Trigger. + + + + the new TriggerBuilder + + + + Produce the . + + + + a Trigger that meets the specifications of the builder. + + + + Use a with the given name and default 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 updated TriggerBuilder + + + + + + 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 + + + + + + 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 + + + + + + Set the given (human-meaningful) description of the Trigger. + + + + the description for the Trigger + the updated TriggerBuilder + + + + + 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 + + + + + + Set the name of the that should be applied to this + Trigger's schedule. + + + + the name of the Calendar to reference. + the updated TriggerBuilder + + + + + + 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 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 updated TriggerBuilder + + + + + Set the time at which the Trigger will no longer fire - even if it's + schedule has remaining repeats. + + + + the end time for the Trigger. If null, the end time is indefinite. + the updated TriggerBuilder + + + + + + Set the that will be used to define the + Trigger's schedule. + + + The particular used will dictate + the concrete type of Trigger that is produced by the TriggerBuilder. + + the SchedulerBuilder to use. + the updated TriggerBuilder + + + + + + + + Set the identity of the Job which should be fired by the produced + Trigger. + + + + the identity of the Job to fire. + the updated TriggerBuilder + + + + + 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. + + + + the name of the job (in default group) to fire. + the updated TriggerBuilder + + + + + 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 name of the job to fire. + the group of the job to fire. + the updated TriggerBuilder + + + + + Set the identity of the Job which should be fired by the produced + Trigger, by extracting the JobKey from the given job. + + + + the Job to fire. + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Common constants for triggers. + + + + + The default value for priority. + + + + + 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); + + + + + + + + All trigger states known to Scheduler. + + Marko Lahma (.NET) + + + + Indicates that the is in the "normal" state. + + + + + Indicates that the is in the "paused" state. + + + + + Indicates that the is in the "complete" state. + + + "Complete" indicates that the trigger has not remaining fire-times in + its schedule. + + + + + Indicates that the is in the "error" state. + + + + 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. + + + + + + Indicates that the is in the "blocked" state. + + + A arrives at the blocked state when the job that + it is associated with has a and it is + currently executing. + + + + + + Indicates that the does not exist. + + + + + 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. + + + + + Convenience and utility methods for simplifying the construction and + configuration of s and DateTimeOffsetOffsets. + + + + 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. + + 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 + 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 + 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 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 + The starting date at which to find fire times + The ending date at which to stop finding fire times + List of java.util.Date objects + + + + An exception that is thrown to indicate that a call to + failed without interrupting the Job. + + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given cause. + + + + + 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. + +
+
diff --git a/packages/Quartz.2.0.1/lib/net35/C5.dll b/packages/Quartz.2.0.1/lib/net35/C5.dll new file mode 100644 index 0000000..2130d1f Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net35/C5.dll differ diff --git a/packages/Quartz.2.0.1/lib/net35/Quartz.dll b/packages/Quartz.2.0.1/lib/net35/Quartz.dll new file mode 100644 index 0000000..c7d9e64 Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net35/Quartz.dll differ diff --git a/packages/Quartz.2.0.1/lib/net35/Quartz.pdb b/packages/Quartz.2.0.1/lib/net35/Quartz.pdb new file mode 100644 index 0000000..e95389f Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net35/Quartz.pdb differ diff --git a/packages/Quartz.2.0.1/lib/net35/Quartz.xml b/packages/Quartz.2.0.1/lib/net35/Quartz.xml new file mode 100644 index 0000000..de320e2 --- /dev/null +++ b/packages/Quartz.2.0.1/lib/net35/Quartz.xml @@ -0,0 +1,20066 @@ + + + + Quartz + + + + + A wrapper for generic HashSet that brings a common interface. + + + + + + Represents a collection ob objects that contains no duplicate elements. + + Marko Lahma (.NET) + + + + A sorted set. + + Marko Lahma (.NET) + + + + 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. + + + + Returns the first item in the set. + + First object. + + + + Returns the object in the specified index. + + + + + + + Simple C5 wrapper for common interface. + + + + + + Default constructor. + + + + + Constructor that accepts comparer. + + Comparer to use. + + + + Constructor that prepolutates. + + + + + + Returns the first element. + + + + + + Return items from given range. + + + + + + + Indexer. + + + + + + + Only for backwards compatibility with serialization! + + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + 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) + + + + 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. + + Marko Lahma (.NET) + + + + + The interface to be implemented by classes that want to be informed of major + events. + + + + + James House + Marko Lahma (.NET) + + + + 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 a s has been paused. + + + + + Called by the a group of + s has been paused. + + + If a all groups were paused, then the parameter + will be null. + + The trigger group. + + + + Called by the when a + has been un-paused. + + + + + 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. + + + + Called by the when a + has been added. + + + + + + Called by the when a + has been deleted. + + + + + Called by the when a + has been paused. + + + + + 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. + + + + Called by the when a + has been un-paused. + + + + + 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 inform the listener + that it has move to standby mode. + + + + + Called by the to inform the listener + that it has started. + + + + + 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. + + + + + This interface should be implemented by any class whose instances are intended + to be executed by a thread. + + Marko Lahma (.NET) + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Create a JobRunShell instance with the given settings. + + The instance that should be made + available within the . + + + + + Initializes the job execution context with given scheduler and bundle. + + The scheduler. + + + + Requests the Shutdown. + + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Runs begin procedures on this instance. + + + + + Completes the execution. + + if set to true [successful execution]. + + + + Passivates this instance. + + + + + Completes the trigger retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Vetoeds the job retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Default concrete implementation of . + + + + + 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. + + + + 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. + + + + + + + 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. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and removed. + + + + Get a List containing all of the s in + the. + + + + + Get the that has the given name. + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and + removed. + + + + Get a List containing all of the s + in the. + + + + + 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. + + true if the Job was found and deleted. + + + + Remove the indicated from the + scheduler. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + the key of the trigger + 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. + + + + + Creates a new positive random number + + The last random obtained + Returns a new positive random number + + + + Trigger the identified (Execute it now) - with a non-volatile trigger. + + + + + Store and schedule the identified + + + + + + Pause the with the given name. + + + + + Pause all of the s in the given group. + + + + + 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. + + + + + Resume (un-pause) the with the given + name. + + 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 + matching groups. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + Gets the paused trigger groups. + + + + + + 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. + + + + + + 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 + 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 + on every group. + + 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 the names of all known + groups. + + + + + Get the names of all the s in + the matching groups. + + + + + Get the for the + instance with the given name and group. + + + + + Get the instance with the given name and + group. + + + + + 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. + + + + + Get the current state of the identified . + + + + + + Add (register) the given to the Scheduler. + + + + + Delete the identified from the Scheduler. + + true if the Calendar was found and deleted. + + + + Get the instance with the given name. + + + + + Get the names of all registered s. + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal + that has the given name. + + + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal that + has the given name. + + + + + + + Notifies the job store job complete. + + 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. + + The jec. + The je. + + + + Notifies the scheduler listeners about scheduler error. + + The MSG. + The se. + + + + Notifies the scheduler listeners about job that was scheduled. + + The trigger. + + + + Notifies the scheduler listeners about job that was unscheduled. + + + + + Notifies the scheduler listeners about finalized trigger. + + The trigger. + + + + Notifies the scheduler listeners about paused trigger. + + The group. + + + + Notifies the scheduler listeners about paused trigger. + + + + + Notifies the scheduler listeners resumed trigger. + + The group. + + + + Notifies the scheduler listeners resumed trigger. + + + + + Notifies the scheduler listeners about paused job. + + + + + Notifies the scheduler listeners about paused job. + + The group. + + + + Notifies the scheduler listeners about resumed job. + + + + + Notifies the scheduler listeners about resumed job. + + The group. + + + + 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. + + + + + Gets the version of the Quartz Scheduler. + + The version. + + + + Gets the version major. + + The version major. + + + + Gets the version minor. + + The version minor. + + + + Gets the version iteration. + + The version iteration. + + + + Gets the scheduler signaler. + + The scheduler signaler. + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + Gets or sets a value indicating whether to signal on scheduling change. + + + true if schduler should signal on scheduling change; otherwise, false. + + + + + Reports whether the is paused. + + + + + Gets the job store class. + + The job store class. + + + + Gets the thread pool class. + + The thread pool class. + + + + Gets the size of the thread pool. + + The size of the thread pool. + + + + Reports whether the has been Shutdown. + + + + + 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 internal s + registered with the . + + + + + Gets or sets the job factory. + + The job factory. + + + + Gets the running since. + + The running since. + + + + Gets the number of jobs executed. + + The number of jobs executed. + + + + Gets a value indicating whether this scheduler supports persistence. + + true if supports persistence; otherwise, false. + + + + Get a List containing all of the s + in the 's internal list. + + + + + + Get a list containing all of the s + in the 's internal list. + + + + + Helper class to start scheduler in a delayed fashion. + + + + + ErrorLogger - Scheduler Listener Class + + + + + The interface to be implemented by classes that want to be informed when 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 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 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. + + + + + Get the name of the . + + + + + Contains all of the resources (,, + etc.) necessary to create a instance. + + + James House + Marko Lahma (.NET) + + + + Gets the unique identifier. + + Name of the scheduler. + The scheduler instance id. + + + + + Gets the unique identifier. + + + + + + Add the given for the + to use. This method expects the plugin's + "initialize" method to be invoked externally (either before or after + this method is called). + + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the instance Id for the . + + + if name is null or empty. + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the for the + to use. + + + if threadPool is null. + + + + + Get or set the for the + to use. + + + if jobStore is null. + + + + + Get or set the for the + to use. + + + if jobRunShellFactory is null. + + + + + Get the of all s for the + to use. + + + + + + Gets or sets a value indicating whether to make scheduler thread daemon. + + + true if scheduler should be thread daemon; otherwise, false. + + + + + Gets or sets the scheduler exporter. + + 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 + s that are registered with the . + + + + + James House + Marko Lahma (.NET) + + + + Support class used to handle threads + + Marko Lahma (.NET) + + + + The instance of System.Threading.Thread + + + + + Initializes a new instance of the QuartzThread class + + + + + Initializes a new instance of the Thread class. + + The name of the thread + + + + This method has no functionality unless the method is overridden + + + + + Causes the operating system to change the state of the current thread instance to ThreadState.Running + + + + + Interrupts a thread that is in the WaitSleepJoin thread state + + + + + Blocks the calling thread until a thread terminates + + + + + Obtain a string that represents the current object + + A string that represents the current object + + + + Gets or sets the name of the thread + + + + + Gets or sets a value indicating the scheduling priority of a thread + + + + + Gets or sets a value indicating whether or not a thread is a background thread. + + + + + Gets the randomized idle wait time. + + 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 + attributes. + + + + + Signals the main processing loop to pause at the next possible point. + + + + + 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 + waiting for the fire time to arrive. + + + the time when the newly scheduled trigger + will fire. If this method is being called do to some other even (rather + than scheduling a trigger), the caller should pass null. + + + + + The main processing loop of the . + + + + + Trigger retry loop that is executed on error condition. + + The bndle. + + + + Releases the trigger retry loop. + + The trigger. + + + + Gets the log. + + The log. + + + + Sets the idle wait time. + + The idle wait time. + + + + Gets a value indicating whether this is paused. + + true if paused; otherwise, false. + + + + Gets or sets the db failure retry interval. + + The db failure retry interval. + + + + An interface to be used by instances in order to + communicate signals back to the . + + James House + Marko Lahma (.NET) + + + + An interface to be used by instances in order to + 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. + + + + + 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 + + + + Initializes this instance. Parses information and initializes startup + values. + + + + + Gets the name of the parameter which includes the parameter prefix for this + database. + + Name of the parameter. + + + Gets or sets the name of the assembly that holds the connection library. + The name of the assembly. + + + + Gets or sets the name of the product. + + The name of the product. + + + + Gets or sets the type of the connection. + + The type of the connection. + + + + Gets or sets the type of the command. + + The type of the command. + + + + Gets or sets the type of the parameter. + + The type of the parameter. + + + + Gets the type of the command builder. + + The type of the command builder. + + + Gets the command builder's derive parameters method. + The command builder derive parameters method. + + + + Gets or sets the parameter name prefix. + + The parameter name prefix. + + + + Gets or sets the type of the exception that is thrown when using driver + library. + + The type of the exception. + + + + Gets or sets a value indicating whether parameters are bind by name when using + ADO.NET parameters. + + true if parameters are bind by name; otherwise, false. + + + Gets or sets the type of the database parameters. + The type of the parameter db. + + + + Gets the parameter db type property. + + The parameter db type property. + + + + Gets the parameter is nullable property. + + The parameter is nullable property. + + + + Gets or sets the type of the db binary column. This is a string representation of + Enum element because this information is database driver specific. + + The type of the db binary. + + + Gets the type of the db binary. + The type of the db binary. + + + + Sets the name of the parameter db type property. + + The name of the parameter db type property. + + + + Gets or sets a value indicating whether [use parameter name prefix in parameter collection]. + + + true if [use parameter name prefix in parameter collection]; otherwise, false. + + + + + 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. + + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + 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. + + + + + Registers DB metadata information for given provider name. + + + + + + + Initializes a new instance of the class. + + Name of the db provider. + The connection string. + + + + 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. + + A new Command Builder + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + be portable (but more loosely typed) across .NET 1.1/2.0 + + + + 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. + + + + + + Gets the metadata. + + The metadata. + + + + This interface can be implemented by any + class that needs to use the constants contained herein. + + Jeffrey Wescott + James House + Marko Lahma(.NET) + + + + Simple Trigger type. + + + + + Cron Trigger type. + + + + + Calendar Interval Trigger type. + + + + + Daily Time Interval Trigger type. + + + + + 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 + + + + Common helper methods for working with ADO.NET. + + 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) + + + + + + + + + + Base class for database based lock handlers for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + same time. + + Marko Lahma (.NET) + + + + This class extends + to include the query string constants in use by the + class. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + An interface for providing thread/resource locking in order to protect + resources from being altered by multiple threads at the same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + 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 scheduler name + The SQL. + The default SQL. + The db provider. + + + + Execute the SQL that will lock the proper database row. + + + + + + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + + + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + + + + Gets or sets the lock owners. + + The lock owners. + + + + Gets the log. + + The log. + + + + This Semaphore implementation does use the database. + + + + + Gets or sets the table prefix. + + The table prefix. + + + + Initialization argumens holder for implementations. + + + + + 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. + + 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 + state. + + 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 + + + + 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 + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + 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. + + The DB Connection + Name of the group. + The state. + The timestamp. + An array of objects + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection + The number of rows deleted + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Insert the job detail record. + + The DB Connection + The job to insert. + Number of rows inserted. + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + + + + Delete the job detail record for the given job. + + The DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + Check whether or not the given job exists. + + The DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The DB Connection + The job. + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection + The key identifying the job. + The class load helper. + The populated JobDetail object + + + + Select the total number of jobs stored. + + The DB Connection + the total number of jobs stored + + + + Select all of the job group names that are stored. + + The DB Connection. + an array of group names + + + + Select all of the jobs contained in a given group. + + The DB Connection + + an array of job names + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection + The trigger to insert + The number of rows inserted + + + + Update the base trigger data. + + the DB Connection + The trigger. + The state. + The job detail. + the number of rows updated + + + + Update the blob trigger data. + + the DB Connection + The trigger. + the number of rows updated + + + + Check whether or not a trigger exists. + + the DB Connection + The key identifying the trigger. + the number of rows updated + + + + Update the state for a given trigger. + + The DB Connection + 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 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 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 + One of the old state the trigger must be in + + int the number of rows updated + + SQLException + + + + 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 + + + + 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 + + + + Update the states of all triggers associated with the given job. + + The DB Connection + 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 key identifying the job. + The new state for the triggers + The old state of the triggers + the number of rows updated + + + + Delete the BLOB trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + The number of rows deleted + + + + Delete the base trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + the number of rows deleted + + + + Select the number of triggers associated with a given job. + + The DB Connection + 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 key identifying the trigger. + The load helper. + + The object associated with the given trigger + + + + + Select the triggers for a job> + + The DB Connection + The key identifying the job. + an array of objects associated with a given job. + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + The DB Connection. + The key identifying the trigger. + The object. + + + + + Select a trigger's JobDataMap. + + The DB Connection. + The key identifying the trigger. + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + The DB Connection. + The key identifying the trigger. + The object. + + + + Select a triggers status (state and next fire time). + + The DB Connection. + The key identifying the trigger. + A object, or null + + + + Select the total number of triggers stored. + + The DB Connection. + The total number of triggers stored. + + + + Select all of the trigger group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the triggers contained in a given group. + + The DB Connection. + + An array of trigger names. + + + + Select all of the triggers in a given state. + + The DB Connection. + The state the triggers must be in. + An array of trigger s. + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows inserted. + + + + Update a calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows updated. + + + + Check whether or not a calendar exists. + + The DB Connection. + The name of the calendar. + true if the trigger exists, false otherwise. + + + + Select a calendar. + + The DB Connection. + The name of the calendar. + The Calendar. + + + + 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 + + + + Delete a calendar. + + The DB Connection + The name of the trigger. + The number of rows deleted. + + + + Select the total number of calendars stored. + + The DB Connection + The total number of calendars stored. + + + + Select all of the stored calendars. + + 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 + 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. + + The DB Connection + The trigger. + The state that the trigger should be stored in. + The job detail. + The number of rows inserted. + + + + 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 FiredTriggerRecord objects. + + + + 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 FiredTriggerRecord objects. + + + + 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. + + + + Delete a fired trigger. + + The DB Connection + The fired trigger entry to delete. + The number of rows deleted. + + + + Get the number instances of the identified job currently executing. + + The DB Connection + The key identifying the job. + + The number instances of the identified job currently executing. + + + + + Insert a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The interval. + The number of inserted rows. + + + + Delete a scheduler-instance state record. + + The DB Connection + The instance id. + The number of deleted rows. + + + + Update a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The number of updated rows. + + + + 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) + 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. + + + + Select the distinct instance names of all fired-trigger records. + + + This is useful when trying to identify orphaned fired triggers (a + fired trigger without a scheduler state record.) + + The conn. + + + + + Counts the misfired triggers in states. + + The conn. + The state1. + The ts. + + + + + Selects the misfired triggers in states. + + The conn. + The state1. + The ts. + The count. + The result list. + + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + Exception class for when a driver delegate cannot be found for a given + configuration, or lack thereof. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + Base class for exceptions thrown by the Quartz . + + + SchedulerExceptions may contain a reference to another + , which was the underlying cause of the SchedulerException. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The MSG. + + + + 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. + + The cause. + + + + Initializes a new instance of the class. + + The MSG. + The cause. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + 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 + Marko Lahma (.NET) + + + + Contains base functionality for ADO.NET-based JobStore implementations. + + Jeffrey Wescott + James House + Marko Lahma (.NET) + + + + The interface to be implemented by classes that want to provide a + and storage mechanism for the + 's use. + + + Storage of s and s should be keyed + on the combination of their name and group for uniqueness. + + + + + + + + James House + Marko Lahma (.NET) + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Store the given and . + + The to be stored. + The to be stored. + ObjectAlreadyExistsException + + + + returns true if the given JobGroup is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + Store the given . + + 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 + key, and any s that reference + it. + + + 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. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Store the given . + + 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 key. + + + + 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. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + The to be replaced. + The new to be stored. + + if a with the given + name and group was found and removed from the store. + + + + + Retrieve the given . + + + 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. + + + + the identifier to check for + true if a trigger exists with the given identifier + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Store the given . + + 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. + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + + 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. + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + + + + 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 names of all of the + groups. + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + + 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 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 ). + + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Get the current state of the identified . + + + + + + Pause the with the given key. + + + + + 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 key - by + pausing all of its current 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 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 the given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + + 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). + + + 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. + + + + + 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. + + + + + Indicates whether job store supports persistence. + + + + + + How long (in milliseconds) the implementation + estimates that it will take to release a trigger and acquire a new one. + + + + + Whether or not the implementation is clustered. + + + + + + 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. + + + + + Tells the JobStore the pool size used to execute jobs. + + + + + Initializes a new instance of the class. + + + + + Gets the connection and starts a new transaction. + + + + + + Called by the QuartzScheduler before the is + used, in order to give it a chance to Initialize. + + + + + + + + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Store the given and . + + Job to be stored. + Trigger to be stored. + + + + returns true if the given JobGroup + is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + 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. + + + + + Store the given . + + 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. + + + + + Insert or update a trigger. + + + + + Check existence of a given trigger. + + + + + Remove (delete) the with the given + name, and any s that reference + it. + + + + 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. + + + + + Delete a job and its listeners. + + + + + + + Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry. + + + + + + + + Retrieve the for the given + . + + The key identifying the job. + 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 key identifying the trigger. + + if a with the given + name & group was found and removed from the store. + + + + + + + + Retrieve the given . + + The key identifying the trigger. + The desired , or null if there is no match. + + + + Get the current state of the identified . + + + + + + + + + + Gets the state of the trigger. + + The conn. + The key identifying the trigger. + + + + + Store the given . + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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. + + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + 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 + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + 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 names of all of the + groups. + + + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + 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 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 ). + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Pause the with the given name. + + + + + Pause the with the given name. + + + + + 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. + + + + + + Determines if a Trigger for the given job should be blocked. + State can only transition to StatePausedBlocked/StateBlocked from + StatePaused/StateWaiting respectively. + + StatePausedBlocked, StateBlocked, or the currentState. + + + + Resume (un-pause) the with the + given name. + + + If the missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + 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. + + + + + + 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. + + + + + + Pause all of the s in the given group. + + + + + + Pause all of the s in the given group. + + + + + Pause all of the s in the + given group. + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + + 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. + + + + + + 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. + + + + + + + Get a handle to the next N triggers to be fired, and mark them as 'reserved' + by the calling scheduler. + + + + + + Inform the that the scheduler no longer plans to + fire the given , that it had previously acquired + (reserved). + + + + + 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. + + + + + 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. + + + + + Create dummy objects for fired triggers + that have no scheduler state record. Checkin timestamp and interval are + left as zero on these dummy objects. + + + List of all current s + + + + Cleanup the given database connection. This means restoring + any modified auto commit or transaction isolation connection + attributes, and then closing the underlying connection. + + + + 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. + + + + + + Closes the supplied connection. + + (Optional) + + + + Rollback the supplied connection. + + (Optional) + + JobPersistenceException thrown if a SQLException occurs when the + connection is rolled back + + + + + Commit the supplied connection. + + The CTH. + if set to true opens a new transaction. + JobPersistenceException thrown if a SQLException occurs when the + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + Execute the given callback having optionally acquired the given lock. + This uses the non-managed transaction connection. + + + 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. + + + + + Get or set the datasource name. + + + + + Gets the log. + + The log. + + + + Get or sets the prefix that should be pre-pended to all table names. + + + + + Set whether string-only properties will be handled in JobDataMaps. + + + + + Get or set the instance Id of the Scheduler (must be unique within a cluster). + + + + + Get or set the instance Id of the Scheduler (must be unique within this server instance). + + + + + Get or set whether this instance is part of a cluster. + + + + + 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. + + + + + 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. + + + + + Gets or sets the database retry interval. + + The db retry interval. + + + + Get or set whether this instance should use database-based thread + synchronization. + + + + + 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. + + + Setting this property to will provide a + significant performance increase during the addition of new jobs + and triggers. + + + + + 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. + + + + + 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. + + + + + Set the transaction isolation level of DB connections to sequential. + + + + + 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. + + + However, if batch acquisition is used, it is important for this behavior + to be used for all dbs. + + + + + Get or set the ADO.NET driver delegate class name. + + + + + The driver delegate's initialization string. + + + + + set the SQL statement to use to select and lock a row in the "locks" + table. + + + + + + Get whether the threads spawned by this JobStore should be + marked as daemon. Possible threads include the + and the . + + + + + + 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. + + + + + + Get the driver delegate for DB operations. + + + + + Get whether String-only properties will be handled in JobDataMaps. + + + + + Indicates whether this job store supports persistence. + + + + + + + An interface for classes wishing to provide the service of loading classes + and resources within the scheduler... + + James House + Marko Lahma (.NET) + + + + 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 + + + + + Helper class for returning the composite result of trying + to recover misfired jobs. + + + + + Initializes a new instance of the class. + + if set to true [has more misfired triggers]. + The processed misfired trigger count. + + + + + Gets a value indicating whether this instance has more misfired triggers. + + + true if this instance has more misfired triggers; otherwise, false. + + + + + Gets the processed misfired trigger count. + + The processed misfired trigger count. + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + + + 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 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. + + + + 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) + + + + 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 + Marko Lahma (.NET) + + + + An exception that is thrown to indicate that there has been a failure in the + scheduler's underlying persistence mechanism. + + James House + Marko Lahma (.NET) + + + + 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 cause. + + + + + + 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 + + + + 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) + + + + Initializes the driver delegate. + + + + + 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 + + + + Get the names of all of the triggers that have misfired. + + the DB Connection + The ts. + an array of objects + + + + Select all of the triggers in a given state. + + The DB Connection + The state the triggers must be in + an array of trigger s + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + An array of objects + + + + 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. + + + + Get the number of triggers in the given state that have + misfired - according to the given timestamp. + + + + + + + + + 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 + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection. + The number of rows deleted. + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Insert the job detail record. + + The DB Connection. + The job to insert. + Number of rows inserted. + + + + 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. + + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + An array of objects + + + + Delete the job detail record for the given job. + + the DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + + Check whether or not the given job exists. + + the DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The conn. + the job to update + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection. + The key identifying the job. + The load helper. + The populated JobDetail object. + + + build Map from java.util.Properties encoding. + + + + Select the total number of jobs stored. + + The DB Connection. + The total number of jobs stored. + + + + Select all of the job group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the jobs contained in a given group. + + The DB Connection. + + An array of job names. + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows inserted. + + + + 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. + + + + Update the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows updated. + + + + Check whether or not a trigger exists. + + The DB Connection. + the key of the trigger + true if the trigger exists, false otherwise + + + + Update the state for a given trigger. + + The DB Connection. + the key of 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. + + 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. + + + + 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. + + + + 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 + + + + 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 + + + + 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 + + + + Updates the state of the trigger states for job from other. + + The conn. + Key of the job. + The state. + The old state. + + + + + Delete the cron trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + Delete the base trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + 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 + + + + 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 + + + + Select the triggers for a job + + the DB Connection + the key of the job + + an array of objects + associated with a given job. + + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger's JobDataMap. + + the DB Connection + the key of the trigger + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger status (state and next fire time). + + the DB Connection + the key of the trigger + + a object, or null + + + + + Select the total number of triggers stored. + + the DB Connection + the total number of triggers stored + + + + Select all of the trigger group names that are stored. + + the DB Connection + + an array of group names + + + + + Select all of the triggers contained in a given group. + + the DB Connection + + + an array of trigger names + + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows inserted + IOException + + + + Update a calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows updated + IOException + + + + Check whether or not a calendar exists. + + the DB Connection + The name of the calendar. + + true if the trigger exists, false otherwise + + + + + Select a calendar. + + the DB Connection + The name of the calendar. + the Calendar + ClassNotFoundException + IOException + + + + 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 + + + + + Delete a calendar. + + the DB Connection + The name of the trigger. + the number of rows deleted + + + + Select the total number of calendars stored. + + the DB Connection + the total number of calendars stored + + + + Select all of the stored calendars. + + 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 + trigger that will be fired at the given fire time, or null if no + trigger will be fired at that time + + + + + 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. + + + + 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 + + + + + Update a fired trigger. + + + + + + the DB Connection + + the trigger + + + the state that the trigger should be stored in + the number of rows inserted + + + + 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. + + + + 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. + + + + 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. + + + + 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.) + + + + + Delete a fired trigger. + + the DB Connection + the fired trigger entry to delete + the number of rows deleted + + + + Selects the job execution count. + + The DB connection. + The key of the job. + + + + + Inserts the state of the scheduler. + + The conn. + The instance id. + The check in time. + The interval. + + + + + Deletes the state of the scheduler. + + The database connection. + The instance id. + + + + + Updates the state of the scheduler. + + The database connection. + The instance id. + The check in time. + + + + + 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. + + + + + Replace the table prefix in a query by replacing any occurrences of + "{0}" with the table prefix. + + The unsubstitued query + The query, with proper table prefix substituted + + + + Create a serialized version of an Object. + + 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. + + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs. The default implementation uses standard + ADO.NET operations. + + The data reader, already queued to the correct row. + The column index for the BLOB. + The deserialized object from the DataReader BLOB. + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs for job details. + + The result set, already queued to the correct row. + The column index for the BLOB. + The deserialized Object from the ResultSet BLOB. + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + 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) + + + + 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 Oracle database. + + Marko Lahma + + + + Creates the SQL for select next trigger to acquire. + + + + + Gets the db presentation for boolean value. For Oracle we use true/false of "1"/"0". + + Value to map to database. + + + + + Conveys a scheduler-instance state record. + + James House + Marko Lahma (.NET) + + + + Gets or sets the checkin interval. + + The checkin interval. + + + + Gets or sets the checkin timestamp. + + The checkin timestamp. + + + + Gets or sets the scheduler instance id. + + The scheduler instance id. + + + + Internal in-memory lock handler for providing thread/resource locking in + order to protect resources from being altered by multiple threads at the + same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + True if the lock was obtained. + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Gets the thread locks. + + The thread locks. + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + + This is a driver delegate for the SQLiteDelegate ADO.NET driver. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQLite version with LIMIT support. + + + + + + A SQL Server specific driver delegate. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQL Server specific version with TOP functionality + + + + + + Internal database based lock handler for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + 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. + + + + + + Provide thread/resource locking in order to protect + resources from being altered by multiple threads at the same time using + a db row update. + + + + Note: This Semaphore implementation is useful for databases that do + 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. + + + + + + + + + This implementation of the Calendar excludes a set of days of the year. You + may use it to exclude bank holidays which are on the same date every year. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + This implementation of the Calendar may be used (you don't have to) as a + base class for more sophisticated one's. It merely implements the base + functionality required by each Calendar. + + + Regarded as base functionality is the treatment of base calendars. Base + calendar allow you to chain (stack) as much calendars as you may need. For + example to exclude weekends you may use WeeklyCalendar. In order to exclude + holidays as well you may define a WeeklyCalendar instance to be the base + calendar for HolidayCalendar instance. + + + Juergen Donnerstag + James House + Marko Lahma (.NET) + + + + 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. + + + 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. + + + + + 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. + + + + + Set a new base calendar or remove the existing one. + Get the base calendar. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Initializes a new instance of the class. + + The time zone. + + + + Initializes a new instance of the class. + + The base calendar. + The time zone. + + + + Serialization constructor. + + + + + + + checks whether two arrays have + the same length and + for any given place there are equal elements + in both arrays + + + + + + 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. + + + + Gets or sets the time zone. + + The time zone. + + + + Gets or sets the description given to the instance by + its creator (if any). + + + + + Set a new base calendar or remove the existing one + + + + + + Constructor + + + + + Constructor + + 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. + + + + + + Get or the array which defines the exclude-value of each day of month. + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes the set of times expressed by a + given CronExpression. + + + 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 + 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 + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + 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 + 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. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the cron expression for the calendar to a new value. + + The expression. + + + + Returns the object representation of the cron expression that defines the + dates and times this calendar excludes. + + + + + This implementation of the Calendar excludes (or includes - see below) a + specified time range each day. + + + For example, you could use this calendar to + exclude business hours (8AM - 5PM) every day. Each + only allows a single time range to be specified, and that time range may not + * cross daily boundaries (i.e. you cannot specify a time range from 8PM - 5AM). + If the property is (default), + the time range defines a range of times in which triggers are not allowed to + * 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) + + + + Create a with a time range defined by the + specified strings and no baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • items enclosed in brackets ('[', ']') are optional.
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+
+ + + Create a with a time range defined by the + specified strings and the specified baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • + items enclosed in brackets ('[', ']') are optional. +
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The base calendar for this calendar instance see BaseCalendar for more + information on base calendar functionality. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. Values are subject to + the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified values and the specified . Values are + subject to the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified s and no + baseCalendar. The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendar.after(rangeEndingCalendar) == true) + +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified s and the specified + . The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendarUtc > rangeEndingCalendarUtc == true) +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. The values are + subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Create a with a time range defined by the + specified values and the specified . The values + are subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + + + + + + 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 0 if all days are excluded. + + + + + + + + Returns the start time of the time range of the day + specified in . + + + a DateTime representing the start time of the + time range for the specified date. + + + + + Returns the end time of the time range of the day + specified in + + + A DateTime representing the end time of the + time range for the specified date. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the time range for the to the times + represented in the specified Strings. + + The range starting time string. + The range ending time string. + + + + Sets the time range for the to the times + represented in the specified values. + + The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. + + + + Sets the time range for the to the times + represented in the specified s. + + The range starting calendar. + The range ending calendar. + + + + Sets the time range for the to the times + represented in the specified values. + + 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. + + The time. + + + + + Checks the specified values for validity as a set of time values. + + The hour of day. + The minute. + The second. + The millis. + + + + Indicates whether the time range represents an inverted time range (see + class description). + + true if invert time range; otherwise, false. + + + + This implementation of the Calendar stores a list of holidays (full days + that are excluded from scheduling). + + + The implementation DOES take the year into consideration, so if you want to + exclude July 4th for the next 10 years, you need to add 10 entries to the + exclude list. + + Sharada Jambula + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + 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. + + + + Add the given Date to the list of excluded days. Only the month, day and + year of the returned dates are significant. + + + + + Removes the excluded date. + + The date to remove. + + + + Returns a of Dates representing the excluded + days. Only the month, day and year of the returned dates are + significant. + + + + + This implementation of the Calendar excludes a set of days of the month. You + may use it to exclude every 1. of each month for example. But you may define + any day of a month. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Constructor + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if mday is defined to be exluded. + + + + + Redefine a certain day of the month to be excluded (true) or included + (false). + + + + + Check if all days are excluded. That is no day is included. + + 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. + + + + Get or set the array which defines the exclude-value of each day of month + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes a set of days of the week. You + may use it to exclude weekends for example. But you may define any day of + the week. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if wday is defined to be exluded. E. g. + saturday and sunday. + + + + + Redefine a certain day of the week to be excluded (true) or included + (false). Use enum to determine the weekday. + + + + + 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. + + + + + + Get the array with the week days. + Setting will redefine the array of days excluded. The array must of size greater or + equal 8. java.util.Calendar's constants like MONDAY should be used as + index. A value of true is regarded as: exclude it. + + + + + Matches using an AND operator on two Matcher operands. + + James House + Marko Lahma (.NET) + + + + Matchers can be used in various API methods to + select the entities that should be operated upon. + + James House + + + + + Create an AndMatcher that depends upon the result of both of the given matchers. + + + + + + + + + Matches on the complete key being equal (both name and group). + + + + jhouse + + + + Create an EverythingMatcher that matches all jobs. + + + + + + Create an EverythingMatcher that matches all triggers. + + + + + + Matches on group (ignores name) property of Keys. + + James House + Marko Lahma (.NET) + + + + An abstract base class for some types of matchers. + + James House + Marko Lahma (.NET) + + + + Create a GroupMatcher that matches groups equaling the given string. + + + + + + + Create a GroupMatcher that matches groups starting with the given string. + + + + + + + Create a GroupMatcher that matches groups ending with the given string. + + + + + + + Create a GroupMatcher that matches groups containing the given string. + + + + + + + Matches on the complete key being equal (both name and group). + + James House + Marko Lahma (.NET) + + + + Create a KeyMatcher that matches Keys that equal the given key. + + + + + + + + Matches on name (ignores group) property of Keys. + + James House + Marko Lahma (.NET) + + + + Create a NameMatcher that matches names equaling the given string. + + + + + + + Create a NameMatcher that matches names starting with the given string. + + + + + + + Create a NameMatcher that matches names ending with the given string. + + + + + + + Create a NameMatcher that matches names containing the given string. + + + + + + + Matches using an NOT operator on another Matcher. + + James House + Marko Lahma (.NET) + + + + Create a NotMatcher that reverses the result of the given matcher. + + + + + + + + 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. + + + + + + + + + Operators available for comparing string values. + + + + + The base abstract class to be extended by all triggers. + + + + 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 + Marko Lahma (.NET) + + + + Internal interface for managing triggers. This interface should not be used by the Quartz client. + + + + + Should not be used by end users. + + + + + The base interface with properties common to all s - + use to instantiate an actual Trigger. + + + + 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) + + + + Get a that is configured to produce a + schedule identical to this trigger's schedule. + + + + + + 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. + + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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 . + + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + 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. + + + + + Associate the with the given name with this Trigger. + + + + + Set the to be associated with the + . + + + + + 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. + + + + + + + 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; } + + + + + + Set the time at which the should quit repeating - + regardless of any remaining repeats (based on the trigger's particular + repeat settings). + + + + + + + + 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 not explicitly set, the default value is . + + + + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + 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. + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 + . + + + + + 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. + + + + 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. + + + + 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. + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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 . + + + + + + 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 next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. + + + + + 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. + + + + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + Return a simple string representation of this object. + + + + + 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. + + + + + + + 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. + + + + + Trigger equality is based upon the equality of the TriggerKey. + + + true if the key of this Trigger equals that of the given Trigger + + + + 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 . + + + + + Creates a new object that is a copy of the current instance. + + + 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. + + + if group is an empty string. + + + + + 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. + + + + + Returns the 'full name' of the in the format + "group.name". + + + + + Gets the key. + + The key. + + + + Returns the 'full name' of the that the + points to, in the format "group.name". + + + + + Get or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + 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. + + + + + + + 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. + + + + + 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) + + + + A that is used to fire a + based upon repeating calendar time intervals. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + Get the number of times the has already fired. + + + + + Gets the time zone within which time calculations related to this trigger will be performed. + + + If null, the system default TimeZone will be used. + + + + + 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). + + + + + + Create a with no settings. + + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + Validates the misfire instruction. + + The misfire instruction. + + + + + 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
  • +
+
+
+ + + 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). + + + + + + + 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). + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + + Get the time at which the should occur. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + Get the time at which the should quit + repeating. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + 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). + + + + + + Get 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. + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + 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' . + + + + + 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 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' . + + + + + 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. + + + + + SchedulerException + + + + 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. + + + + + + + + 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 + preventing garbage collection, and allowing 'global' lookups. + + James House + Marko Lahma (.NET) + + + + Binds the specified sched. + + The sched. + + + + Removes the specified sched name. + + Name of the sched. + + + + + Lookups the specified sched name. + + Name of the sched. + + + + + Lookups all. + + + + + + Gets the singleton instance. + + The instance. + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + Called by the to obtain instances of + . + + + + + An implementation of the interface that directly + proxies all method calls to the equivalent call on a given + instance. + + + + James House + Marko Lahma (.NET) + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Construct a instance to proxy the given + 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 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' . + + + + + 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. + UnableToInterruptJobException if the job does not implement + + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + 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. + + + + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + + + + + An implementation of that + does all of it's work of creating a instance + 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 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 + file will be set on the instance by calling an equivalent 'set' method. For + example if the properties file contains the property 'quartz.jobStore. + myProp = 10' then after the JobStore class has been instantiated, the property + '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. + + + + + Initializes a new instance of the class. + + The props. + + + + 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 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. + + + + + Creates a new name value collection and overrides its values + with system values (environment variables). + + The base properties to override. + A new NameValueCollection instance. + + + + Initialize the with + 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 + will be called by this method. + + + + + Returns a handle to the Scheduler with the given name, if it exists (if + it has already been instantiated). + + + + + + Returns a handle to all known Schedulers (made by any + StdSchedulerFactory instance.). + + + + + + 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) + + + + + The interface to be implemented by classes which represent a 'job' to be + performed. + + + Instances of this interface must have a + 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 + 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. + + + 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 + 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. + + + + + + Gets the last modified date. + + Name of the file. + + + + + Gets the log. + + 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) + + + + + Ïnforms that certain file has been updated. + + Name of the file. + + + + 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) + + + + Required parameter that specifies the name of the command (executable) + to be ran. + + + + + Optional parameter that specifies the parameters to be passed to the + executed command. + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the job should wait for the execution of the native process to + complete before it completes. + + Defaults to . + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the spawned process's stdout and stderr streams should be + consumed. If the process creates output, it is possible that it might + 'hang' if the streams are not consumed. + + Defaults to . + + + + + Optional parameter that specifies the workling directory to be used by + the executed command. + + + + + Initializes a new instance of the class. + + + + + 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. + + + + + + + Gets the log. + + The log. + + + + Consumes data from the given input stream until EOF and prints the data to stdout + + cooste + James House + + + + Initializes a new instance of the class. + + The enclosing instance. + The input stream. + The type. + + + + Runs this object as a separate thread, printing the contents of the input stream + supplied during instantiation, to either Console. or stderr + + + + + An implementation of Job, that does absolutely nothing - useful for system + which only wish to use s + and s, rather than writing + Jobs that perform work. + + James House + Marko Lahma (.NET) + + + + Do nothing. + + + + + A Job which sends an e-mail with the configured content to the configured + recipient. + + James House + Marko Lahma (.NET) + + + The host name of the smtp server. REQUIRED. + + + The e-mail address to send the mail to. REQUIRED. + + + The e-mail address to cc the mail to. Optional. + + + The e-mail address to claim the mail is from. REQUIRED. + + + The e-mail address the message should say to reply to. Optional. + + + The subject to place on the e-mail. REQUIRED. + + + 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 + events to them (in order). + + + This 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 + 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 TriggerListener 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) + + + + The interface to be implemented by classes that want to be informed when 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 + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + + The that will be passed to the 's method. + + + + + 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. 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 + 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. + + + + 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. + + + + + 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. + + + + the name of this instance + the initial List of TriggerListeners to broadcast to. + + + + Keeps a collection of mappings of which Job to trigger after the completion + of a given job. If this listener is notified of a job completing that has a + mapping, then it will then attempt to trigger the follow-up job. This + 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) + + + + + Initializes a new instance of the class. + + + + + 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 + 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. + + + + + + + Get the for this class's category. + This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Construct an instance with the given name. + + 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 JobKey with the name and group of the first job + a JobKey with the name and group of the follow-up job + + + + 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) + + + + + Get the for this + class's category. This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Logs a history of all job executions (and execution vetos) via common + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8ObjectThe string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8StringThe message from the thrown JobExecution Exception. +
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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) +
+ + + Provides an interface for a class to become a "plugin" to Quartz. + + + Plugins can do virtually anything you wish, though the most interesting ones + 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) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + 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. + + + The scheduler to which the plugin is registered. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + 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 when a + was about to be executed (an associated + has occured), but a vetoed it's + execution. + + + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or sets the message that is logged when a Job successfully completes its + execution. + + + + + Get or sets the message that is logged when a Job fails its + execution. + + + + + Gets or sets the message that is logged when a Job is about to Execute. + + + + + Gets or sets the message that is logged when a Job execution is vetoed by a + trigger listener. + + + + + Get the name of the . + + + + + + Logs a history of all trigger firings via the Jakarta Commons-Logging + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time. (the time the misfire was detected/handled)
5StringThe Job's name.
6StringThe Job's group.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe job completion time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
8IntegerThe trigger's resulting instruction code.
9StringA human-readable translation of the trigger's resulting instruction + code.
+ + 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) +
+ + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called by the when a + has fired, and it's associated + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + The that will be passed to the 's method. + + + + 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. + + + + 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. + + + + 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. + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or set the message that is printed upon the completion of a trigger's + firing. + + + + + Get or set the message that is printed upon a trigger's firing. + + + + + Get or set the message that is printed upon a trigger's mis-firing. + + + + + Get the name of the . + + + + + + This plugin catches the event of the VM terminating (such as upon a CRTL-C) + and tells the scheuler to Shutdown. + + + James House + Marko Lahma (.NET) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Determine whether or not the plug-in is configured to cause a clean + Shutdown of the scheduler. + + The default value is . + + + + + + + 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 + file for changes. + + + The periodically scanning of files for changes is not currently supported in a + clustered environment. + + James House + Pierre Awaragi + + + + Initializes a new instance of the class. + + + + + + + + + + + Called during creation of the in order to give + the a chance to initialize. + + The name. + 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. + + + + + 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 . + + + + + Information about a file that should be processed by . + + + + + Default object serialization strategy that uses + under the hood. + + Marko Lahma + + + + Interface for object serializers. + + Marko Lahma + + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize, always non-null. + + + + Deserializes object from byte array presentation. + + Data to deserialize object from, always non-null and non-empty. + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize. + + + + Deserializes object from byte array presentation. + + 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 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 + + The clusterwide unique instance id. + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + A JobFactory that instantiates the Job instance (using the default no-arg + 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 + Marko Lahma (.NET) + + + + The default JobFactory used by Quartz - simply calls + on the job class. + + + + James House + Marko Lahma (.NET) + + + + A JobFactory is responsible for producing instances of + classes. + + + This interface 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. + + + + + 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 + Scheduler will move all triggers associated with the Job into the + 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. + + 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. + + + 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 + Scheduler will move all triggers associated with the Job into the + 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 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 + Scheduler will move all triggers associated with the Job into the + 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 newly instantiated Job + SchedulerException if there is a problem instantiating the Job. + + + + Sets the object properties. + + The object to set properties to. + The data to set. + + + + Whether the JobInstantiation should fail and throw and exception if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + Get or set whether a warning should be logged if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + 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 + Marko Lahma (.NET) + + + + 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 + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Clears (deletes!) all scheduling data - all s, s + s. + + + + + Store the given and . + + 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 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. + + + if a with the given name and + group was found and removed from the store. + + + + + Remove (delete) the with the + given name. + + + if a with the given + name and group was found and removed from the store. + + + + + Store the given . + + 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. + + + + if a with the given + name and group was found and removed from the store. + + The to be removed. + Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger. + + + + Replaces the trigger. + + The of the to be replaced. + The new trigger. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Retrieve the given . + + + 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 . + + + + + + + + + + + Store the given . + + 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 . + + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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 + 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 + that have the given group name. + + + + + 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. + + + + + + Gets the trigger wrappers for calendar. + + Name of the cal. + + + + + Pause the with the given name. + + + + + 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 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 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 the + given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + Applies the misfire. + + 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 + (reserved). + + + + + Inform the that the scheduler is now firing the + 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 + associated ), and that the + in the given should be updated if the + is stateful. + + + + + Sets the state of all triggers of job to specified state. + + + + + Peeks the triggers. + + + + + + + + + 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. + + + + + Returns whether this instance supports persistence. + + + + + + + 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. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Possible internal trigger states + in RAMJobStore + + + + + Waiting + + + + + Acquired + + + + + Executing + + + + + Complete + + + + + Paused + + + + + Blocked + + + + + Paused and Blocked + + + + + Error + + + + + Helper wrapper class + + + + + The key used + + + + + Job's key + + + + + The trigger + + + + + Current state + + + + + 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. + + + + + 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 . + + + + + Scheduler exporter that exports scheduler to remoting context. + + Marko Lahma + + + + Service interface for scheduler exporters. + + Marko Lahma + + + + Binds (exports) scheduler to external context. + + + + + + Unbinds scheduler from external context. + + + + + + Registers remoting channel if needed. This is determined + by checking whether there is a positive value for port. + + + + + Gets or sets the port used for remoting. + + + + + Gets or sets the name to use when exporting + scheduler to remoting context. + + + + + Gets or sets the name to use when binding to + tcp channel. + + + + + Sets the channel type when registering remoting. + + + + + + Sets the used when + exporting to remoting context. Defaults to + . + + + + + A implementation that creates + connection to remote scheduler using remoting. + + + + + Client Proxy to a IRemotableQuartzScheduler + + + + + Returns a client proxy to a remote . + + + + + Returns a client proxy to a remote . + + + + + Gets or sets the remote scheduler address. + + 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) + + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + 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) + + + + The interface to be implemented by classes that want to provide a thread + pool for the 's use. + + + implementation instances should ideally be made + for the sole use of Quartz. Most importantly, when the method + returns a value of 1 or greater, + there must still be at least one available thread in the pool when the + method is called a few moments (or + many moments) later. If this assumption does not hold true, it may + result in extra JobStore queries and updates, and if clustering features + are being used, it may result in greater imballance of load. + + + James House + Marko Lahma (.NET) + + + + 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 implementation of this method should block until there is at + least one available thread. + + the number of currently available threads + + + + Must be called before the is + used, in order to give the it a chance to Initialize. + + + Typically called by the . + + + + + Called by the QuartzScheduler to inform the + that it should free up all of it's resources because the scheduler is + shutting down. + + + + + 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. + + + + + Create a new (unconfigured) . + + + + + Create a new with the specified number + of s that have the given priority. + + + the number of worker s in the pool, must + be > 0. + + + the thread priority for the worker threads. + + + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Run the given object in the next available + . If while waiting the thread pool is asked to + shut down, the Runnable is executed immediately within a new additional + thread. + + The to be added. + + + + Creates the worker threads. + + The thread count. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Gets or sets the number of worker threads in the pool. + Set has no effect after has been called. + + + + + Get or set the thread priority of worker threads in the pool. + Set operation has no effect after has been called. + + + + + Gets or sets the thread name prefix. + + The thread name prefix. + + + + Gets or sets the value of makeThreadsDaemons. + + + + + Gets the size of the pool. + + 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. + + + + + Create a worker thread and start it. Waiting for the next Runnable, + executing it, and waiting for the next Runnable, until the Shutdown + flag is set. + + + + + Create a worker thread, start it, Execute the runnable and terminate + the thread (one time execution). + + + + + Signal the thread that it should terminate. + + + + + Loop, executing targets as they are received. + + + + + A that simply calls . + + + James House + Marko Lahma (.NET) + + + + 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 Uri 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 Stream object + + + + + InstanceIdGenerator that will use a to configure the scheduler. + If no value set for the property, a is thrown. + Alex Snaps + + + + + System property to read the instanceId from. + + + + + Returns the cluster wide value for this scheduler instance's id, based on a system property. + + + + + A string of text to prepend (add to the beginning) to the instanceId found in the system property. + + + + + A string of text to postpend (add to the end) to the instanceId found in the system property. + + + + + The name of the system property from which to obtain the instanceId. + + + Defaults to . + + + + + This is class is a simple implementation of a zero size thread pool, based on the + 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 + Marko Lahma (.NET) + + + + 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. + + + + 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 simple class (structure) used for returning execution-time data from the + JobStore to the . + + + James House + Marko Lahma (.NET) + + + + 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. + + + + + Result holder for trigger firing event. + + + + + Constructor. + + + + + + Constructor. + + + + + Bundle. + + + + + Possible exception. + + + + + Extension methods for . + + + + + Tries to read value and returns the value if successfully read. Otherwise return default value + for value's type. + + + + + + + + + + Extension methods for simplified access. + + + + + Returns string from given column name, or null if DbNull. + + + + + Returns int from given column name. + + + + + Returns long from given column name. + + + + + Returns long from given column name, or null if DbNull. + + + + + Returns decimal from given column name. + + + + + Manages a collection of IDbProviders, and provides transparent access + to their database. + + + James House + Sharada Jambula + Mohammad Rezaei + Marko Lahma (.NET) + + + + 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. + + Name of the ds. + + + + + Get the class instance. + + an instance of this class + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified. + + James House + Marko Lahma (.NET) + + + + Create a DirtyFlagMap that 'wraps' a . + + + + + Create a DirtyFlagMap that 'wraps' a that has the + given initial capacity. + + + + + Serialization constructor. + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + When implemented by a class, removes all elements from the . + + + The is read-only. + + + + + When implemented by a class, determines whether the contains an element with the specified key. + + 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 key of the element to remove. + + is . + + The is read-only. + -or- + The has a fixed size. + + + + + When implemented by a class, returns an + for the . + + + An for the . + + + + + When implemented by a class, adds an element with the provided key and value to the . + + 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. + + 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 ). + + + + + Determines whether the specified obj contains value. + + The obj. + + true if the specified obj contains value; otherwise, false. + + + + + Gets the entries as a set. + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets keyset for this map. + + + + + + Puts the value behind a specified key. + + The key. + The val. + + + + + Puts all. + + The t. + + + + Determine whether the is flagged dirty. + + + + + Get a direct handle to the underlying Map. + + + + + Gets a value indicating whether this instance is empty. + + true if this instance is empty; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + When implemented by a class, gets the number of + elements contained in the . + + + + + + When implemented by a class, gets an containing the values in the . + + + + + + When implemented by a class, gets an containing the keys of the . + + + + + + When implemented by a class, gets a value indicating whether the + is read-only. + + + + + + When implemented by a class, gets a value indicating whether the + has a fixed size. + + + + + + When implemented by a class, gets an object that + can be used to synchronize access to the . + + + + + + When implemented by a class, gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + Utility class for file handling related things. + + Marko Lahma + + + + Resolves file to actual file if for example relative '~' used. + + File name to check + Expanded file name or actual no resolving was done. + + + + Object representing a job or trigger key. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + The default group for scheduling entities, with the value "DEFAULT". + + + + + Construct a new key with the given name and group. + + the name + the group + + + + Return the string representation of the key. The format will be: + <group>.<name>. + + + + the string representation of the key + + + + + Get the name portion of the key. + + the name + + + + + Get the group portion of the key. + + + + 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. + + Marko Lahma .NET + + + + 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 + + + + 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. + + + + Empties a data slot with the specified name. + + The name of the data slot to empty. + + + + Generic extension methods for objects. + + + + + Creates a deep copy of object by serializing to memory stream. + + + + + + Utility methods that are used to convert objects from one type into another. + + Aleksandar Seovic + Marko Lahma + + + + 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. + + + + 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. + + + + + Instantiates an instance of the type specified. + + + + + + Sets the object properties using reflection. + + + + + Sets the object properties using reflection. + + The object to set values to. + The properties to set to object. + + + + This is an utility class used to parse the properties. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + The props. + + + + Gets the string property. + + The name. + + + + + Gets the string property. + + The name. + The default value. + + + + + Gets the string array property. + + The name. + + + + + Gets the string array property. + + The name. + The default value. + + + + + Gets the boolean property. + + The name. + + + + + Gets the boolean property. + + The name. + if set to true [defaultValue]. + + + + + Gets the byte property. + + The name. + + + + + Gets the byte property. + + The name. + The default value. + + + + + Gets the char property. + + The name. + + + + + Gets the char property. + + The name. + The default value. + + + + + Gets the double property. + + The name. + + + + + Gets the double property. + + The name. + The default value. + + + + + Gets the float property. + + The name. + + + + + Gets the float property. + + The name. + The default value. + + + + + Gets the int property. + + The name. + + + + + Gets the int property. + + The name. + The default value. + + + + + Gets the int array property. + + The name. + + + + + Gets the int array property. + + The name. + The default value. + + + + + Gets the long property. + + The name. + + + + + Gets the long property. + + The name. + The def. + + + + + Gets the TimeSpan property. + + The name. + The def. + + + + + Gets the short property. + + The name. + + + + + Gets the short property. + + The name. + The default value. + + + + + Gets the property groups. + + The prefix. + + + + + Gets the property group. + + The prefix. + + + + + Gets the property group. + + The prefix. + if set to true [strip prefix]. + + + + + 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. + + + + Reads the properties from assembly (embedded resource). + + The file name to read resources from. + + + + + Reads the properties from file system. + + The file name to read resources from. + + + + + Gets the underlying properties. + + The underlying properties. + + + + Extension methods for . + + + + + Allows null-safe trimming of string. + + + + + + + Trims string and if resulting string is empty, null is returned. + + + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified, enforces that all keys are + strings. + + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The initial capacity. + + + + Serialization constructor. + + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets the keys. + + + + + + Adds the name-value pairs in the given to the . + + All keys must be s, and all values must be serializable. + + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reports JobSchedulingDataProcessor validation exceptions. + + Chris Bonham + Marko Lahma (.NET) + + + + Constructor for ValidationException. + + + + + Constructor for ValidationException. + + exception message. + + + + Constructor for ValidationException. + + collection of validation exceptions. + + + + 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. + + + + Gets the validation exceptions. + + The validation exceptions. + + + + Returns the detail message string. + + + + + 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) + + + + Constructor for XMLSchedulingDataProcessor. + + + + + Process the xml file in the default location (a file named + "quartz_jobs.xml" in the current working directory). + + + + + Process the xml file named . + + meta data file name. + + + + Process the xmlfile named with the given system + ID. + + Name of the file. + The system id. + + + + Process the xmlfile named with the given system + ID. + + The stream. + The system id. + + + + 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. + + + + + + Process the xml file in the default location, and schedule all of the + jobs defined within it. + + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + meta data file name. + The scheduler. + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + Name of the file. + The system id. + The sched. + + + + Schedules the given sets of jobs and triggers. + + The sched. + + + + Adds a detected validation exception. + + The exception. + + + + Resets the the number of detected validation exceptions. + + + + + Throws a ValidationException if the number of validationExceptions + detected is greater than zero. + + + DTD validation exception. + + + + + Whether the existing scheduling data (with same identifiers) will be + overwritten. + + + 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. + + + + + + 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 log. + + The log. + + + + Helper class to map constant names to their values. + + + + + CalendarIntervalScheduleBuilder is a + that defines calendar time (day, week, month, year) interval-based + schedules for Triggers. + + + + 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); + + + + + + + + + + + Base class for implementors. + + + + + + Schedule builders offer fluent interface and are responsible for creating schedules. + + + + + + + + + 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. + + + + + + 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. + + + + + + Create a CalendarIntervalScheduleBuilder. + + + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.HOUR that the produced + Trigger will repeat at. + + + + the number of hours at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.DAY that the produced + Trigger will repeat at. + + + + the number of days at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 + + + + + + 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 + + + + + + Specify an interval in the IntervalUnit.YEAR that the produced + Trigger will repeat at. + + + + the number of years at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + TimeZone in which to base the schedule. + + the time-zone for the schedule + the updated CalendarIntervalScheduleBuilder + + + + + 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). + + + + + + Extension methods that attach to . + + + + + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - /// /
Minutes 0-59 , - /// /
Hours 0-23 , - /// /
Day-of-month 1-31 , - /// ? / L W C
Month 1-12 or JAN-DEC , - /// /
Day-of-Week 1-7 or SUN-SAT , - /// ? / L #
Year (Optional) empty, 1970-2199 , - /// /
+ + 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 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 + 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. + + + + + 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. + + + + + Hours. + + + + + Days of month. + + + + + Months. + + + + + Days of week. + + + + + Years. + + + + + Last day of week. + + + + + 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. + + + 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. + + + + + Gets the numeric value from string. + + The string to parse from. + The i. + + + + + Gets the month number. + + The string to map with. + + + + + Gets the day of week number. + + The s. + + + + + Gets the time from given time parts. + + The seconds. + The minutes. + The hours. + The day of month. + The month. + + + + + Gets the next fire time after the given time. + + The UTC time to start searching from. + + + + + Creates the date time without milliseconds. + + The time. + + + + + Advance the calendar to the particular hour paying particular attention + to daylight saving problems. + + The date. + The hour. + + + + + Gets the time before. + + The end time. + + + + + NOT YET IMPLEMENTED: Returns the final time that the + will match. + + + + + + Determines whether given year is a leap year. + + The year. + + 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. + + + A new object that is a copy of this instance. + + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Sets or gets the time zone for which the of this + will be resolved. + + + + + Gets the cron expression string. + + The cron expression string. + + + + Helper class for cron expression handling. + + + + + The value. + + + + + The position. + + + + + 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); + + + + + + + + + + + + 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. + + + + + + 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 + + + + + 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 + + + + + Create a CronScheduleBuilder with the given cron-expression. + + the cron expression to base the schedule on. + the new CronScheduleBuilder + + + + + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire every day at the given time (hour and minute). + + + + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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 + + + + + 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). + + + + the day of the week to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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). + + + + the day of the month to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + The in which to base the schedule. + + + + the time-zone for the schedule. + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + Extension methods that attach to . + + + + + A implementation that build schedule for DailyTimeIntervalTrigger. + + + + 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); + + + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) + + + + A set of all days of the week. + + + The set contains all values between and + + + + + A set of the business days of the week (for locales similar to the USA). + + + The set contains all values between and + + + + + A set of the weekend days of the week (for locales similar to the USA). + + + The set contains and + + + + + Create a DailyTimeIntervalScheduleBuilder + + The new DailyTimeIntervalScheduleBuilder + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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> + + + + + + 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> + + + + + + Specify an interval in the IntervalUnit.Hour that the produced + Trigger will repeat at. + + The number of hours at which the trigger should repeat. + the updated DailyTimeIntervalScheduleBuilder> + + + + + + 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 + + + + Set the trigger to fire on the given days of the week. + + a variable length list of week days representing the days of the week + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days from Monday through Friday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days Saturday and Sunday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on all days of the week. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to begin firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the startTimeOfDay for this trigger to end firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Calculate and set the EndTimeOfDay using count, interval and StarTimeOfDay. This means + that these must be set before this method is call. + + + the updated DailyTimeIntervalScheduleBuilder + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + Set number of times for interval to repeat. + + + Note: if you want total count = 1 (at start time) + repeatCount + + + + + + + Extension methods that attach to . + + + + + DateBuilder is used to conveniently create + instances that meet particular criteria. + + + + 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); + + + + + + + + Create a DateBuilder, with initial settings for the current date + and time in the system default timezone. + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the system default timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + Time zone to use. + + + + + Build the defined by this builder instance. + + New date time based on builder parameters. + + + + Set the hour (0-23) for the Date that will be built by this builder. + + + + + + + Set the minute (0-59) for the Date that will be built by this builder. + + + + + + + Set the second (0-59) for the Date that will be built by this builder, and truncate the milliseconds to 000. + + + + + + + Set the day of month (1-31) for the Date that will be built by this builder. + + + + + + + Set the month (1-12) for the Date that will be built by this builder. + + + + + + + Set the year for the Date that will be built by this builder. + + + + + + + Set the TimeZoneInfo for the Date that will be built by this builder (if "null", system default will be used) + + + + + + + Get a object that represents the given time, on + tomorrow's date. + + + + + + + + + Get a object that represents the given time, on + today's date (equivalent to . + + + + + + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + + 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 + + + + 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 + + + + 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 + + + + Returns a date that is rounded to the next even second after the current time. + + the new rounded date + + + + 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 + + + + 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 + + + + 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 + +
+ + + 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 + + + + + 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) + + + + 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) + + + + Called by the when a user + interrupts the . + + void (nothing) if job interrupt is successful. + + + + Supported interval units used by . + + + + + 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) + + + + 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); + + + + + + + + + Create a JobBuilder with which to define a . + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Produce the instance defined by this JobBuilder. + + the defined JobDetail. + + + + Use a with the given name and default 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 updated JobBuilder + + + + + + 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 + + + + + + Use a to identify the JobDetail. + + + 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 + + + + + + Set the given (human-meaningful) description of the Job. + + the description for the Job + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + 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 + + + + + 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 + + + + 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 updated JobBuilder + + + + + 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 + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + 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 + + + + + Holds state information for instances. + + + 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) + + + + Create an empty . + + + + + Create a with the given data. + + + + + Create a with the given data. + + + + + Serialization constructor. + + + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + 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 . + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Gets the date time. + + The key. + + + + + 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 + occurred while executing, and whether or not the requests + to be re-fired immediately (using the same , + or whether it wants to be unscheduled. + + + Note that if the flag for 'refire immediately' is set, the flags for + unscheduling the Job are ignored. + + + + + James House + Marko Lahma (.NET) + + + + Create a JobExcecutionException, with the 're-fire immediately' flag set + to . + + + + + Create a JobExcecutionException, with the given cause. + + The cause. + + + + Create a JobExcecutionException, with the given message. + + + + + Initializes a new instance of the class. + + The message. + The original cause. + + + + Create a JobExcecutionException with the 're-fire immediately' flag set + to the given value. + + + + + Create a JobExcecutionException with the given underlying exception, and + the 're-fire immediately' flag set to the given value. + + + + + Create a JobExcecutionException with the given message, and underlying + exception, and the 're-fire immediately' flag set to the given value. + + + + + 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. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + Gets or sets a value indicating whether to unschedule firing trigger. + + + true if firing trigger should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to unschedule all triggers. + + + true if all triggers should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to refire immediately. + + 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) + + + + Instruction not set (yet). + + + + + 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. + + + + + Instructs the that upon a mis-fire + 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 + 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. + + + + 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 + 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 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 + 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 + 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 + 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 + 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 + to go directly to the 'COMPLETE' state if all the end-time of the trigger + has arrived. + + + + + + misfire instructions for CronTrigger + + + + + 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 NthIncludedDayTrigger + + + + + Instructs the that upon a mis-fire situation, the + wants to be fired now by the + + + + + + Instructs the that upon a mis-fire situation, the + wants to have + nextFireTime updated to the next time in the schedule after + 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 + , or + that is not excluded by the associated + calendar. + + + When determining what the Nth day of the month or year + is, will skip excluded days on the + associated calendar. This would commonly be used in an Nth + business day situation, in which the user wishes to fire a particular job on + the Nth business day (i.e. the 5th business day of + 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 + values can be changed using the , , and + 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 + 1 W 1 2 3 4 5 W 1 2 W + W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W + W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W + W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W + W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30 + W + + Where W's represent weekend days, and H's represent holidays, all of which + are excluded on a calendar associated with an + with n=5 and + intervalType=IntervalTypeMonthly. In this case, the trigger + would fire on the 8th of July (because of the July 4 holiday), + the 5th of August, and the 8th of September (because + of Labor Day). + + Aaron Craven + Marko Lahma (.NET) + + + + Indicates a monthly trigger type (fires on the Nth included + day of every month). + + + + indicates a yearly trigger type (fires on the Nth included + day of every year). + + + + + Indicates a weekly trigger type (fires on the Nth included + day of every week). When using this interval type, care must be taken + not to think of the value of as an analog to + . Such a comparison can only + be drawn when there are no calendars associated with the trigger. To + illustrate, consider an with + n = 3 which is associated with a Calendar excluding + non-weekdays. The trigger would fire on the 3rd + included day of the week, which would be 4th + actual day of the week. + + + + + Create an with no specified name, + 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 + called before the can be placed into + a . + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + the group for the + + + + + Create an with the given name and + 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=, + fireAtTime="12:00"). + + The name for the . + The group for the . + The name of the job to associate with the . + The group containing the job to associate with the . + + + + Returns the next UTC time at which the + will fire. If the trigger will not fire again, will be + 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 + + + + + Returns the previous UTC time at which the + fired. If the trigger has not yet + fired, will be returned. + + 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 + weeks after the given date/time, will be returned. For + triggers with intervalType = + + , if the trigger will not fire within 12 + months after the given date/time, will be returned. + For triggers with intervalType = + + , if the trigger will not fire within 12 + 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, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + + the first time the trigger will fire following the specified date + + + + + 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). + + + + + 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 ). + + + + + Called after the has executed the + associated with the in order + to get the final instruction code from the trigger. + + + The that was used by the + 's method. + + + The thrown by the + , if any (may be ) + + one of the Trigger.INSTRUCTION_XXX constants. + + + + + 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 + + + + + A boolean indicator of whether the trigger could potentially fire + again. + + + + + Indicates whether is a valid misfire + instruction for this . + + Whether is valid. + + + Updates the 's state based on the + MisfireInstruction that was selected when the + was created +

+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY, + then the instruction will be interpreted as + . +

+
+ a new or updated calendar to use for the trigger + +
+ + + Updates the 's state based on the + given new version of the associated . + + A new or updated calendar to use for the trigger + the amount of time that must + be between "now" and the time the next + firing of the trigger is supposed to occur. + + + + + Calculates the first time an with + intervalType = IntervalTypeWeekly will fire + after the specified date. See for more + information. + + The time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + date + + + + + Calculates the first UTC time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified date + + + + Calculates the first time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + 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 + should fire. If the Nth + day of the interval does not exist (i.e. the 32nd of a + month), the trigger simply will never fire. N may not be less than 1. + + + + + Returns the interval type for the . + + + Sets the interval type for the . If + , the trigger will fire on the + Nth included day of every month. If + , the trigger will fire on the + Nth included day of every year. If + , the trigger will fire on the + Nth included day of every week. + + + + + + + + Returns the fire time for the as a + string with the format "HH:MM[:SS]", with HH representing the + 24-hour clock hour of the fire time. Seconds are optional and their + inclusion depends on whether or not they were provided to + . + + + + + Returns the for the + . + + + + 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. + + + + + + Returns the last UTC time the will fire. + If the trigger will not fire at any point between + and , will be returned. + + the last time the trigger will fire. + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + + Sets or gets the time zone in which the will be resolved. + If no time zone is provided, then the default time zone will be used. + + + + + + + Gets or sets the trigger's calendar week rule. + + The trigger calendar week rule. + + + + Gets or sets the trigger's calendar first day of week rule. + + The trigger calendar first day of week. + + + + An exception that is thrown to indicate that an attempt to store a new + 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. + + + + + + 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 and auto-generate a + 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 . + + + + 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 + the - or one of the components it + configures. + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given message + and cause. + + + + + 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. + + + + 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 + has no further instructions. + + + + + 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 + ability to 'see' anything placed in the context by its last execution). + + + + + Instructs the that the + should be put in the state. + + + + + Instructs the that the + wants itself deleted. + + + + + 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 + this one should be put in the state. + + + + + Instructs the that the + should be put in the state. + + + + + Describes the settings and capabilities of a given + instance. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + Name of the scheduler. + The scheduler instance. + The scheduler type. + if set to true, scheduler is a remote scheduler. + if set to true, scheduler is started. + 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 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. + + + + Returns a formatted (human readable) string describing all the 's + 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.
+            
+
+
+
+ + + Return a simple string representation of this object. + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the class-name of the instance. + + + + + Returns whether the is being used remotely (via remoting). + + + + + Returns whether the scheduler has been started. + + + Note: may return even if + returns . + + + + + Reports whether the is in standby mode. + + + Note: may return even if + returns . + + + + + Reports whether the has been Shutdown. + + + + + Returns the class-name of the instance that is + being used by the . + + + + + Returns the type name of the instance that is + being used by the . + + + + + Returns the number of threads currently in the 's + + + + + Returns the version of Quartz that is 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.. + + + + + Returns whether or not the 's + instance supports persistence. + + + + + Returns whether or not the 's + is clustered. + + + + + 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 SimpleScheduleBuilder. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 minute interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of minutes. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 second interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of seconds. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 hour interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of hours. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 minute interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of minutes. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 second interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of seconds. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 hour interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + 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 + + + + 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. + + + + + + + + Specify a repeat interval in milliseconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + Specify a repeat interval in seconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + 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 + + + + + + Specify that the trigger will repeat indefinitely. + + + + the updated SimpleScheduleBuilder + + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + 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. + + + + + 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 + + + + 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. + + + + 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. + + + + Gets the rule. + + The rule. + + + + Possible parse rules for s. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TriggerBuilder 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 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); + + + + + + + + + + Create a new TriggerBuilder with which to define a + specification for a Trigger. + + + + the new TriggerBuilder + + + + Produce the . + + + + a Trigger that meets the specifications of the builder. + + + + Use a with the given name and default 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 updated TriggerBuilder + + + + + + 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 + + + + + + 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 + + + + + + Set the given (human-meaningful) description of the Trigger. + + + + the description for the Trigger + the updated TriggerBuilder + + + + + 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 + + + + + + Set the name of the that should be applied to this + Trigger's schedule. + + + + the name of the Calendar to reference. + the updated TriggerBuilder + + + + + + 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 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 updated TriggerBuilder + + + + + Set the time at which the Trigger will no longer fire - even if it's + schedule has remaining repeats. + + + + the end time for the Trigger. If null, the end time is indefinite. + the updated TriggerBuilder + + + + + + Set the that will be used to define the + Trigger's schedule. + + + The particular used will dictate + the concrete type of Trigger that is produced by the TriggerBuilder. + + the SchedulerBuilder to use. + the updated TriggerBuilder + + + + + + + + Set the identity of the Job which should be fired by the produced + Trigger. + + + + the identity of the Job to fire. + the updated TriggerBuilder + + + + + 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. + + + + the name of the job (in default group) to fire. + the updated TriggerBuilder + + + + + 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 name of the job to fire. + the group of the job to fire. + the updated TriggerBuilder + + + + + Set the identity of the Job which should be fired by the produced + Trigger, by extracting the JobKey from the given job. + + + + the Job to fire. + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Common constants for triggers. + + + + + The default value for priority. + + + + + 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); + + + + + + + + All trigger states known to Scheduler. + + Marko Lahma (.NET) + + + + Indicates that the is in the "normal" state. + + + + + Indicates that the is in the "paused" state. + + + + + Indicates that the is in the "complete" state. + + + "Complete" indicates that the trigger has not remaining fire-times in + its schedule. + + + + + Indicates that the is in the "error" state. + + + + 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. + + + + + + Indicates that the is in the "blocked" state. + + + A arrives at the blocked state when the job that + it is associated with has a and it is + currently executing. + + + + + + Indicates that the does not exist. + + + + + 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. + + + + + Convenience and utility methods for simplifying the construction and + configuration of s and DateTimeOffsetOffsets. + + + + 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. + + 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 + 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 + 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 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 + The starting date at which to find fire times + The ending date at which to stop finding fire times + List of java.util.Date objects + + + + An exception that is thrown to indicate that a call to + failed without interrupting the Job. + + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given cause. + + + + + 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. + +
+
diff --git a/packages/Quartz.2.0.1/lib/net40-client/C5.dll b/packages/Quartz.2.0.1/lib/net40-client/C5.dll new file mode 100644 index 0000000..2130d1f Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net40-client/C5.dll differ diff --git a/packages/Quartz.2.0.1/lib/net40-client/Quartz.dll b/packages/Quartz.2.0.1/lib/net40-client/Quartz.dll new file mode 100644 index 0000000..f04797f Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net40-client/Quartz.dll differ diff --git a/packages/Quartz.2.0.1/lib/net40-client/Quartz.pdb b/packages/Quartz.2.0.1/lib/net40-client/Quartz.pdb new file mode 100644 index 0000000..7dd4a17 Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net40-client/Quartz.pdb differ diff --git a/packages/Quartz.2.0.1/lib/net40-client/Quartz.xml b/packages/Quartz.2.0.1/lib/net40-client/Quartz.xml new file mode 100644 index 0000000..de320e2 --- /dev/null +++ b/packages/Quartz.2.0.1/lib/net40-client/Quartz.xml @@ -0,0 +1,20066 @@ + + + + Quartz + + + + + A wrapper for generic HashSet that brings a common interface. + + + + + + Represents a collection ob objects that contains no duplicate elements. + + Marko Lahma (.NET) + + + + A sorted set. + + Marko Lahma (.NET) + + + + 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. + + + + Returns the first item in the set. + + First object. + + + + Returns the object in the specified index. + + + + + + + Simple C5 wrapper for common interface. + + + + + + Default constructor. + + + + + Constructor that accepts comparer. + + Comparer to use. + + + + Constructor that prepolutates. + + + + + + Returns the first element. + + + + + + Return items from given range. + + + + + + + Indexer. + + + + + + + Only for backwards compatibility with serialization! + + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + 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) + + + + 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. + + Marko Lahma (.NET) + + + + + The interface to be implemented by classes that want to be informed of major + events. + + + + + James House + Marko Lahma (.NET) + + + + 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 a s has been paused. + + + + + Called by the a group of + s has been paused. + + + If a all groups were paused, then the parameter + will be null. + + The trigger group. + + + + Called by the when a + has been un-paused. + + + + + 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. + + + + Called by the when a + has been added. + + + + + + Called by the when a + has been deleted. + + + + + Called by the when a + has been paused. + + + + + 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. + + + + Called by the when a + has been un-paused. + + + + + 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 inform the listener + that it has move to standby mode. + + + + + Called by the to inform the listener + that it has started. + + + + + 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. + + + + + This interface should be implemented by any class whose instances are intended + to be executed by a thread. + + Marko Lahma (.NET) + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Create a JobRunShell instance with the given settings. + + The instance that should be made + available within the . + + + + + Initializes the job execution context with given scheduler and bundle. + + The scheduler. + + + + Requests the Shutdown. + + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Runs begin procedures on this instance. + + + + + Completes the execution. + + if set to true [successful execution]. + + + + Passivates this instance. + + + + + Completes the trigger retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Vetoeds the job retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Default concrete implementation of . + + + + + 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. + + + + 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. + + + + + + + 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. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and removed. + + + + Get a List containing all of the s in + the. + + + + + Get the that has the given name. + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and + removed. + + + + Get a List containing all of the s + in the. + + + + + 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. + + true if the Job was found and deleted. + + + + Remove the indicated from the + scheduler. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + the key of the trigger + 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. + + + + + Creates a new positive random number + + The last random obtained + Returns a new positive random number + + + + Trigger the identified (Execute it now) - with a non-volatile trigger. + + + + + Store and schedule the identified + + + + + + Pause the with the given name. + + + + + Pause all of the s in the given group. + + + + + 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. + + + + + Resume (un-pause) the with the given + name. + + 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 + matching groups. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + Gets the paused trigger groups. + + + + + + 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. + + + + + + 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 + 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 + on every group. + + 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 the names of all known + groups. + + + + + Get the names of all the s in + the matching groups. + + + + + Get the for the + instance with the given name and group. + + + + + Get the instance with the given name and + group. + + + + + 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. + + + + + Get the current state of the identified . + + + + + + Add (register) the given to the Scheduler. + + + + + Delete the identified from the Scheduler. + + true if the Calendar was found and deleted. + + + + Get the instance with the given name. + + + + + Get the names of all registered s. + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal + that has the given name. + + + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal that + has the given name. + + + + + + + Notifies the job store job complete. + + 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. + + The jec. + The je. + + + + Notifies the scheduler listeners about scheduler error. + + The MSG. + The se. + + + + Notifies the scheduler listeners about job that was scheduled. + + The trigger. + + + + Notifies the scheduler listeners about job that was unscheduled. + + + + + Notifies the scheduler listeners about finalized trigger. + + The trigger. + + + + Notifies the scheduler listeners about paused trigger. + + The group. + + + + Notifies the scheduler listeners about paused trigger. + + + + + Notifies the scheduler listeners resumed trigger. + + The group. + + + + Notifies the scheduler listeners resumed trigger. + + + + + Notifies the scheduler listeners about paused job. + + + + + Notifies the scheduler listeners about paused job. + + The group. + + + + Notifies the scheduler listeners about resumed job. + + + + + Notifies the scheduler listeners about resumed job. + + The group. + + + + 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. + + + + + Gets the version of the Quartz Scheduler. + + The version. + + + + Gets the version major. + + The version major. + + + + Gets the version minor. + + The version minor. + + + + Gets the version iteration. + + The version iteration. + + + + Gets the scheduler signaler. + + The scheduler signaler. + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + Gets or sets a value indicating whether to signal on scheduling change. + + + true if schduler should signal on scheduling change; otherwise, false. + + + + + Reports whether the is paused. + + + + + Gets the job store class. + + The job store class. + + + + Gets the thread pool class. + + The thread pool class. + + + + Gets the size of the thread pool. + + The size of the thread pool. + + + + Reports whether the has been Shutdown. + + + + + 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 internal s + registered with the . + + + + + Gets or sets the job factory. + + The job factory. + + + + Gets the running since. + + The running since. + + + + Gets the number of jobs executed. + + The number of jobs executed. + + + + Gets a value indicating whether this scheduler supports persistence. + + true if supports persistence; otherwise, false. + + + + Get a List containing all of the s + in the 's internal list. + + + + + + Get a list containing all of the s + in the 's internal list. + + + + + Helper class to start scheduler in a delayed fashion. + + + + + ErrorLogger - Scheduler Listener Class + + + + + The interface to be implemented by classes that want to be informed when 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 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 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. + + + + + Get the name of the . + + + + + Contains all of the resources (,, + etc.) necessary to create a instance. + + + James House + Marko Lahma (.NET) + + + + Gets the unique identifier. + + Name of the scheduler. + The scheduler instance id. + + + + + Gets the unique identifier. + + + + + + Add the given for the + to use. This method expects the plugin's + "initialize" method to be invoked externally (either before or after + this method is called). + + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the instance Id for the . + + + if name is null or empty. + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the for the + to use. + + + if threadPool is null. + + + + + Get or set the for the + to use. + + + if jobStore is null. + + + + + Get or set the for the + to use. + + + if jobRunShellFactory is null. + + + + + Get the of all s for the + to use. + + + + + + Gets or sets a value indicating whether to make scheduler thread daemon. + + + true if scheduler should be thread daemon; otherwise, false. + + + + + Gets or sets the scheduler exporter. + + 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 + s that are registered with the . + + + + + James House + Marko Lahma (.NET) + + + + Support class used to handle threads + + Marko Lahma (.NET) + + + + The instance of System.Threading.Thread + + + + + Initializes a new instance of the QuartzThread class + + + + + Initializes a new instance of the Thread class. + + The name of the thread + + + + This method has no functionality unless the method is overridden + + + + + Causes the operating system to change the state of the current thread instance to ThreadState.Running + + + + + Interrupts a thread that is in the WaitSleepJoin thread state + + + + + Blocks the calling thread until a thread terminates + + + + + Obtain a string that represents the current object + + A string that represents the current object + + + + Gets or sets the name of the thread + + + + + Gets or sets a value indicating the scheduling priority of a thread + + + + + Gets or sets a value indicating whether or not a thread is a background thread. + + + + + Gets the randomized idle wait time. + + 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 + attributes. + + + + + Signals the main processing loop to pause at the next possible point. + + + + + 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 + waiting for the fire time to arrive. + + + the time when the newly scheduled trigger + will fire. If this method is being called do to some other even (rather + than scheduling a trigger), the caller should pass null. + + + + + The main processing loop of the . + + + + + Trigger retry loop that is executed on error condition. + + The bndle. + + + + Releases the trigger retry loop. + + The trigger. + + + + Gets the log. + + The log. + + + + Sets the idle wait time. + + The idle wait time. + + + + Gets a value indicating whether this is paused. + + true if paused; otherwise, false. + + + + Gets or sets the db failure retry interval. + + The db failure retry interval. + + + + An interface to be used by instances in order to + communicate signals back to the . + + James House + Marko Lahma (.NET) + + + + An interface to be used by instances in order to + 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. + + + + + 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 + + + + Initializes this instance. Parses information and initializes startup + values. + + + + + Gets the name of the parameter which includes the parameter prefix for this + database. + + Name of the parameter. + + + Gets or sets the name of the assembly that holds the connection library. + The name of the assembly. + + + + Gets or sets the name of the product. + + The name of the product. + + + + Gets or sets the type of the connection. + + The type of the connection. + + + + Gets or sets the type of the command. + + The type of the command. + + + + Gets or sets the type of the parameter. + + The type of the parameter. + + + + Gets the type of the command builder. + + The type of the command builder. + + + Gets the command builder's derive parameters method. + The command builder derive parameters method. + + + + Gets or sets the parameter name prefix. + + The parameter name prefix. + + + + Gets or sets the type of the exception that is thrown when using driver + library. + + The type of the exception. + + + + Gets or sets a value indicating whether parameters are bind by name when using + ADO.NET parameters. + + true if parameters are bind by name; otherwise, false. + + + Gets or sets the type of the database parameters. + The type of the parameter db. + + + + Gets the parameter db type property. + + The parameter db type property. + + + + Gets the parameter is nullable property. + + The parameter is nullable property. + + + + Gets or sets the type of the db binary column. This is a string representation of + Enum element because this information is database driver specific. + + The type of the db binary. + + + Gets the type of the db binary. + The type of the db binary. + + + + Sets the name of the parameter db type property. + + The name of the parameter db type property. + + + + Gets or sets a value indicating whether [use parameter name prefix in parameter collection]. + + + true if [use parameter name prefix in parameter collection]; otherwise, false. + + + + + 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. + + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + 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. + + + + + Registers DB metadata information for given provider name. + + + + + + + Initializes a new instance of the class. + + Name of the db provider. + The connection string. + + + + 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. + + A new Command Builder + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + be portable (but more loosely typed) across .NET 1.1/2.0 + + + + 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. + + + + + + Gets the metadata. + + The metadata. + + + + This interface can be implemented by any + class that needs to use the constants contained herein. + + Jeffrey Wescott + James House + Marko Lahma(.NET) + + + + Simple Trigger type. + + + + + Cron Trigger type. + + + + + Calendar Interval Trigger type. + + + + + Daily Time Interval Trigger type. + + + + + 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 + + + + Common helper methods for working with ADO.NET. + + 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) + + + + + + + + + + Base class for database based lock handlers for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + same time. + + Marko Lahma (.NET) + + + + This class extends + to include the query string constants in use by the + class. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + An interface for providing thread/resource locking in order to protect + resources from being altered by multiple threads at the same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + 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 scheduler name + The SQL. + The default SQL. + The db provider. + + + + Execute the SQL that will lock the proper database row. + + + + + + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + + + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + + + + Gets or sets the lock owners. + + The lock owners. + + + + Gets the log. + + The log. + + + + This Semaphore implementation does use the database. + + + + + Gets or sets the table prefix. + + The table prefix. + + + + Initialization argumens holder for implementations. + + + + + 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. + + 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 + state. + + 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 + + + + 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 + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + 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. + + The DB Connection + Name of the group. + The state. + The timestamp. + An array of objects + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection + The number of rows deleted + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Insert the job detail record. + + The DB Connection + The job to insert. + Number of rows inserted. + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + + + + Delete the job detail record for the given job. + + The DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + Check whether or not the given job exists. + + The DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The DB Connection + The job. + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection + The key identifying the job. + The class load helper. + The populated JobDetail object + + + + Select the total number of jobs stored. + + The DB Connection + the total number of jobs stored + + + + Select all of the job group names that are stored. + + The DB Connection. + an array of group names + + + + Select all of the jobs contained in a given group. + + The DB Connection + + an array of job names + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection + The trigger to insert + The number of rows inserted + + + + Update the base trigger data. + + the DB Connection + The trigger. + The state. + The job detail. + the number of rows updated + + + + Update the blob trigger data. + + the DB Connection + The trigger. + the number of rows updated + + + + Check whether or not a trigger exists. + + the DB Connection + The key identifying the trigger. + the number of rows updated + + + + Update the state for a given trigger. + + The DB Connection + 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 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 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 + One of the old state the trigger must be in + + int the number of rows updated + + SQLException + + + + 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 + + + + 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 + + + + Update the states of all triggers associated with the given job. + + The DB Connection + 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 key identifying the job. + The new state for the triggers + The old state of the triggers + the number of rows updated + + + + Delete the BLOB trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + The number of rows deleted + + + + Delete the base trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + the number of rows deleted + + + + Select the number of triggers associated with a given job. + + The DB Connection + 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 key identifying the trigger. + The load helper. + + The object associated with the given trigger + + + + + Select the triggers for a job> + + The DB Connection + The key identifying the job. + an array of objects associated with a given job. + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + The DB Connection. + The key identifying the trigger. + The object. + + + + + Select a trigger's JobDataMap. + + The DB Connection. + The key identifying the trigger. + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + The DB Connection. + The key identifying the trigger. + The object. + + + + Select a triggers status (state and next fire time). + + The DB Connection. + The key identifying the trigger. + A object, or null + + + + Select the total number of triggers stored. + + The DB Connection. + The total number of triggers stored. + + + + Select all of the trigger group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the triggers contained in a given group. + + The DB Connection. + + An array of trigger names. + + + + Select all of the triggers in a given state. + + The DB Connection. + The state the triggers must be in. + An array of trigger s. + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows inserted. + + + + Update a calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows updated. + + + + Check whether or not a calendar exists. + + The DB Connection. + The name of the calendar. + true if the trigger exists, false otherwise. + + + + Select a calendar. + + The DB Connection. + The name of the calendar. + The Calendar. + + + + 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 + + + + Delete a calendar. + + The DB Connection + The name of the trigger. + The number of rows deleted. + + + + Select the total number of calendars stored. + + The DB Connection + The total number of calendars stored. + + + + Select all of the stored calendars. + + 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 + 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. + + The DB Connection + The trigger. + The state that the trigger should be stored in. + The job detail. + The number of rows inserted. + + + + 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 FiredTriggerRecord objects. + + + + 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 FiredTriggerRecord objects. + + + + 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. + + + + Delete a fired trigger. + + The DB Connection + The fired trigger entry to delete. + The number of rows deleted. + + + + Get the number instances of the identified job currently executing. + + The DB Connection + The key identifying the job. + + The number instances of the identified job currently executing. + + + + + Insert a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The interval. + The number of inserted rows. + + + + Delete a scheduler-instance state record. + + The DB Connection + The instance id. + The number of deleted rows. + + + + Update a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The number of updated rows. + + + + 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) + 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. + + + + Select the distinct instance names of all fired-trigger records. + + + This is useful when trying to identify orphaned fired triggers (a + fired trigger without a scheduler state record.) + + The conn. + + + + + Counts the misfired triggers in states. + + The conn. + The state1. + The ts. + + + + + Selects the misfired triggers in states. + + The conn. + The state1. + The ts. + The count. + The result list. + + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + Exception class for when a driver delegate cannot be found for a given + configuration, or lack thereof. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + Base class for exceptions thrown by the Quartz . + + + SchedulerExceptions may contain a reference to another + , which was the underlying cause of the SchedulerException. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The MSG. + + + + 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. + + The cause. + + + + Initializes a new instance of the class. + + The MSG. + The cause. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + 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 + Marko Lahma (.NET) + + + + Contains base functionality for ADO.NET-based JobStore implementations. + + Jeffrey Wescott + James House + Marko Lahma (.NET) + + + + The interface to be implemented by classes that want to provide a + and storage mechanism for the + 's use. + + + Storage of s and s should be keyed + on the combination of their name and group for uniqueness. + + + + + + + + James House + Marko Lahma (.NET) + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Store the given and . + + The to be stored. + The to be stored. + ObjectAlreadyExistsException + + + + returns true if the given JobGroup is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + Store the given . + + 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 + key, and any s that reference + it. + + + 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. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Store the given . + + 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 key. + + + + 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. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + The to be replaced. + The new to be stored. + + if a with the given + name and group was found and removed from the store. + + + + + Retrieve the given . + + + 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. + + + + the identifier to check for + true if a trigger exists with the given identifier + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Store the given . + + 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. + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + + 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. + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + + + + 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 names of all of the + groups. + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + + 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 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 ). + + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Get the current state of the identified . + + + + + + Pause the with the given key. + + + + + 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 key - by + pausing all of its current 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 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 the given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + + 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). + + + 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. + + + + + 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. + + + + + Indicates whether job store supports persistence. + + + + + + How long (in milliseconds) the implementation + estimates that it will take to release a trigger and acquire a new one. + + + + + Whether or not the implementation is clustered. + + + + + + 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. + + + + + Tells the JobStore the pool size used to execute jobs. + + + + + Initializes a new instance of the class. + + + + + Gets the connection and starts a new transaction. + + + + + + Called by the QuartzScheduler before the is + used, in order to give it a chance to Initialize. + + + + + + + + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Store the given and . + + Job to be stored. + Trigger to be stored. + + + + returns true if the given JobGroup + is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + 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. + + + + + Store the given . + + 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. + + + + + Insert or update a trigger. + + + + + Check existence of a given trigger. + + + + + Remove (delete) the with the given + name, and any s that reference + it. + + + + 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. + + + + + Delete a job and its listeners. + + + + + + + Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry. + + + + + + + + Retrieve the for the given + . + + The key identifying the job. + 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 key identifying the trigger. + + if a with the given + name & group was found and removed from the store. + + + + + + + + Retrieve the given . + + The key identifying the trigger. + The desired , or null if there is no match. + + + + Get the current state of the identified . + + + + + + + + + + Gets the state of the trigger. + + The conn. + The key identifying the trigger. + + + + + Store the given . + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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. + + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + 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 + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + 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 names of all of the + groups. + + + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + 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 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 ). + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Pause the with the given name. + + + + + Pause the with the given name. + + + + + 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. + + + + + + Determines if a Trigger for the given job should be blocked. + State can only transition to StatePausedBlocked/StateBlocked from + StatePaused/StateWaiting respectively. + + StatePausedBlocked, StateBlocked, or the currentState. + + + + Resume (un-pause) the with the + given name. + + + If the missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + 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. + + + + + + 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. + + + + + + Pause all of the s in the given group. + + + + + + Pause all of the s in the given group. + + + + + Pause all of the s in the + given group. + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + + 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. + + + + + + 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. + + + + + + + Get a handle to the next N triggers to be fired, and mark them as 'reserved' + by the calling scheduler. + + + + + + Inform the that the scheduler no longer plans to + fire the given , that it had previously acquired + (reserved). + + + + + 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. + + + + + 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. + + + + + Create dummy objects for fired triggers + that have no scheduler state record. Checkin timestamp and interval are + left as zero on these dummy objects. + + + List of all current s + + + + Cleanup the given database connection. This means restoring + any modified auto commit or transaction isolation connection + attributes, and then closing the underlying connection. + + + + 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. + + + + + + Closes the supplied connection. + + (Optional) + + + + Rollback the supplied connection. + + (Optional) + + JobPersistenceException thrown if a SQLException occurs when the + connection is rolled back + + + + + Commit the supplied connection. + + The CTH. + if set to true opens a new transaction. + JobPersistenceException thrown if a SQLException occurs when the + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + Execute the given callback having optionally acquired the given lock. + This uses the non-managed transaction connection. + + + 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. + + + + + Get or set the datasource name. + + + + + Gets the log. + + The log. + + + + Get or sets the prefix that should be pre-pended to all table names. + + + + + Set whether string-only properties will be handled in JobDataMaps. + + + + + Get or set the instance Id of the Scheduler (must be unique within a cluster). + + + + + Get or set the instance Id of the Scheduler (must be unique within this server instance). + + + + + Get or set whether this instance is part of a cluster. + + + + + 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. + + + + + 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. + + + + + Gets or sets the database retry interval. + + The db retry interval. + + + + Get or set whether this instance should use database-based thread + synchronization. + + + + + 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. + + + Setting this property to will provide a + significant performance increase during the addition of new jobs + and triggers. + + + + + 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. + + + + + 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. + + + + + Set the transaction isolation level of DB connections to sequential. + + + + + 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. + + + However, if batch acquisition is used, it is important for this behavior + to be used for all dbs. + + + + + Get or set the ADO.NET driver delegate class name. + + + + + The driver delegate's initialization string. + + + + + set the SQL statement to use to select and lock a row in the "locks" + table. + + + + + + Get whether the threads spawned by this JobStore should be + marked as daemon. Possible threads include the + and the . + + + + + + 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. + + + + + + Get the driver delegate for DB operations. + + + + + Get whether String-only properties will be handled in JobDataMaps. + + + + + Indicates whether this job store supports persistence. + + + + + + + An interface for classes wishing to provide the service of loading classes + and resources within the scheduler... + + James House + Marko Lahma (.NET) + + + + 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 + + + + + Helper class for returning the composite result of trying + to recover misfired jobs. + + + + + Initializes a new instance of the class. + + if set to true [has more misfired triggers]. + The processed misfired trigger count. + + + + + Gets a value indicating whether this instance has more misfired triggers. + + + true if this instance has more misfired triggers; otherwise, false. + + + + + Gets the processed misfired trigger count. + + The processed misfired trigger count. + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + + + 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 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. + + + + 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) + + + + 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 + Marko Lahma (.NET) + + + + An exception that is thrown to indicate that there has been a failure in the + scheduler's underlying persistence mechanism. + + James House + Marko Lahma (.NET) + + + + 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 cause. + + + + + + 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 + + + + 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) + + + + Initializes the driver delegate. + + + + + 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 + + + + Get the names of all of the triggers that have misfired. + + the DB Connection + The ts. + an array of objects + + + + Select all of the triggers in a given state. + + The DB Connection + The state the triggers must be in + an array of trigger s + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + An array of objects + + + + 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. + + + + Get the number of triggers in the given state that have + misfired - according to the given timestamp. + + + + + + + + + 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 + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection. + The number of rows deleted. + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Insert the job detail record. + + The DB Connection. + The job to insert. + Number of rows inserted. + + + + 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. + + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + An array of objects + + + + Delete the job detail record for the given job. + + the DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + + Check whether or not the given job exists. + + the DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The conn. + the job to update + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection. + The key identifying the job. + The load helper. + The populated JobDetail object. + + + build Map from java.util.Properties encoding. + + + + Select the total number of jobs stored. + + The DB Connection. + The total number of jobs stored. + + + + Select all of the job group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the jobs contained in a given group. + + The DB Connection. + + An array of job names. + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows inserted. + + + + 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. + + + + Update the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows updated. + + + + Check whether or not a trigger exists. + + The DB Connection. + the key of the trigger + true if the trigger exists, false otherwise + + + + Update the state for a given trigger. + + The DB Connection. + the key of 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. + + 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. + + + + 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. + + + + 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 + + + + 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 + + + + 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 + + + + Updates the state of the trigger states for job from other. + + The conn. + Key of the job. + The state. + The old state. + + + + + Delete the cron trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + Delete the base trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + 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 + + + + 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 + + + + Select the triggers for a job + + the DB Connection + the key of the job + + an array of objects + associated with a given job. + + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger's JobDataMap. + + the DB Connection + the key of the trigger + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger status (state and next fire time). + + the DB Connection + the key of the trigger + + a object, or null + + + + + Select the total number of triggers stored. + + the DB Connection + the total number of triggers stored + + + + Select all of the trigger group names that are stored. + + the DB Connection + + an array of group names + + + + + Select all of the triggers contained in a given group. + + the DB Connection + + + an array of trigger names + + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows inserted + IOException + + + + Update a calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows updated + IOException + + + + Check whether or not a calendar exists. + + the DB Connection + The name of the calendar. + + true if the trigger exists, false otherwise + + + + + Select a calendar. + + the DB Connection + The name of the calendar. + the Calendar + ClassNotFoundException + IOException + + + + 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 + + + + + Delete a calendar. + + the DB Connection + The name of the trigger. + the number of rows deleted + + + + Select the total number of calendars stored. + + the DB Connection + the total number of calendars stored + + + + Select all of the stored calendars. + + 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 + trigger that will be fired at the given fire time, or null if no + trigger will be fired at that time + + + + + 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. + + + + 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 + + + + + Update a fired trigger. + + + + + + the DB Connection + + the trigger + + + the state that the trigger should be stored in + the number of rows inserted + + + + 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. + + + + 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. + + + + 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. + + + + 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.) + + + + + Delete a fired trigger. + + the DB Connection + the fired trigger entry to delete + the number of rows deleted + + + + Selects the job execution count. + + The DB connection. + The key of the job. + + + + + Inserts the state of the scheduler. + + The conn. + The instance id. + The check in time. + The interval. + + + + + Deletes the state of the scheduler. + + The database connection. + The instance id. + + + + + Updates the state of the scheduler. + + The database connection. + The instance id. + The check in time. + + + + + 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. + + + + + Replace the table prefix in a query by replacing any occurrences of + "{0}" with the table prefix. + + The unsubstitued query + The query, with proper table prefix substituted + + + + Create a serialized version of an Object. + + 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. + + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs. The default implementation uses standard + ADO.NET operations. + + The data reader, already queued to the correct row. + The column index for the BLOB. + The deserialized object from the DataReader BLOB. + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs for job details. + + The result set, already queued to the correct row. + The column index for the BLOB. + The deserialized Object from the ResultSet BLOB. + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + 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) + + + + 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 Oracle database. + + Marko Lahma + + + + Creates the SQL for select next trigger to acquire. + + + + + Gets the db presentation for boolean value. For Oracle we use true/false of "1"/"0". + + Value to map to database. + + + + + Conveys a scheduler-instance state record. + + James House + Marko Lahma (.NET) + + + + Gets or sets the checkin interval. + + The checkin interval. + + + + Gets or sets the checkin timestamp. + + The checkin timestamp. + + + + Gets or sets the scheduler instance id. + + The scheduler instance id. + + + + Internal in-memory lock handler for providing thread/resource locking in + order to protect resources from being altered by multiple threads at the + same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + True if the lock was obtained. + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Gets the thread locks. + + The thread locks. + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + + This is a driver delegate for the SQLiteDelegate ADO.NET driver. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQLite version with LIMIT support. + + + + + + A SQL Server specific driver delegate. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQL Server specific version with TOP functionality + + + + + + Internal database based lock handler for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + 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. + + + + + + Provide thread/resource locking in order to protect + resources from being altered by multiple threads at the same time using + a db row update. + + + + Note: This Semaphore implementation is useful for databases that do + 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. + + + + + + + + + This implementation of the Calendar excludes a set of days of the year. You + may use it to exclude bank holidays which are on the same date every year. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + This implementation of the Calendar may be used (you don't have to) as a + base class for more sophisticated one's. It merely implements the base + functionality required by each Calendar. + + + Regarded as base functionality is the treatment of base calendars. Base + calendar allow you to chain (stack) as much calendars as you may need. For + example to exclude weekends you may use WeeklyCalendar. In order to exclude + holidays as well you may define a WeeklyCalendar instance to be the base + calendar for HolidayCalendar instance. + + + Juergen Donnerstag + James House + Marko Lahma (.NET) + + + + 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. + + + 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. + + + + + 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. + + + + + Set a new base calendar or remove the existing one. + Get the base calendar. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Initializes a new instance of the class. + + The time zone. + + + + Initializes a new instance of the class. + + The base calendar. + The time zone. + + + + Serialization constructor. + + + + + + + checks whether two arrays have + the same length and + for any given place there are equal elements + in both arrays + + + + + + 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. + + + + Gets or sets the time zone. + + The time zone. + + + + Gets or sets the description given to the instance by + its creator (if any). + + + + + Set a new base calendar or remove the existing one + + + + + + Constructor + + + + + Constructor + + 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. + + + + + + Get or the array which defines the exclude-value of each day of month. + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes the set of times expressed by a + given CronExpression. + + + 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 + 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 + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + 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 + 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. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the cron expression for the calendar to a new value. + + The expression. + + + + Returns the object representation of the cron expression that defines the + dates and times this calendar excludes. + + + + + This implementation of the Calendar excludes (or includes - see below) a + specified time range each day. + + + For example, you could use this calendar to + exclude business hours (8AM - 5PM) every day. Each + only allows a single time range to be specified, and that time range may not + * cross daily boundaries (i.e. you cannot specify a time range from 8PM - 5AM). + If the property is (default), + the time range defines a range of times in which triggers are not allowed to + * 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) + + + + Create a with a time range defined by the + specified strings and no baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • items enclosed in brackets ('[', ']') are optional.
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+
+ + + Create a with a time range defined by the + specified strings and the specified baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • + items enclosed in brackets ('[', ']') are optional. +
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The base calendar for this calendar instance see BaseCalendar for more + information on base calendar functionality. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. Values are subject to + the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified values and the specified . Values are + subject to the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified s and no + baseCalendar. The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendar.after(rangeEndingCalendar) == true) + +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified s and the specified + . The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendarUtc > rangeEndingCalendarUtc == true) +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. The values are + subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Create a with a time range defined by the + specified values and the specified . The values + are subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + + + + + + 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 0 if all days are excluded. + + + + + + + + Returns the start time of the time range of the day + specified in . + + + a DateTime representing the start time of the + time range for the specified date. + + + + + Returns the end time of the time range of the day + specified in + + + A DateTime representing the end time of the + time range for the specified date. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the time range for the to the times + represented in the specified Strings. + + The range starting time string. + The range ending time string. + + + + Sets the time range for the to the times + represented in the specified values. + + The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. + + + + Sets the time range for the to the times + represented in the specified s. + + The range starting calendar. + The range ending calendar. + + + + Sets the time range for the to the times + represented in the specified values. + + 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. + + The time. + + + + + Checks the specified values for validity as a set of time values. + + The hour of day. + The minute. + The second. + The millis. + + + + Indicates whether the time range represents an inverted time range (see + class description). + + true if invert time range; otherwise, false. + + + + This implementation of the Calendar stores a list of holidays (full days + that are excluded from scheduling). + + + The implementation DOES take the year into consideration, so if you want to + exclude July 4th for the next 10 years, you need to add 10 entries to the + exclude list. + + Sharada Jambula + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + 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. + + + + Add the given Date to the list of excluded days. Only the month, day and + year of the returned dates are significant. + + + + + Removes the excluded date. + + The date to remove. + + + + Returns a of Dates representing the excluded + days. Only the month, day and year of the returned dates are + significant. + + + + + This implementation of the Calendar excludes a set of days of the month. You + may use it to exclude every 1. of each month for example. But you may define + any day of a month. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Constructor + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if mday is defined to be exluded. + + + + + Redefine a certain day of the month to be excluded (true) or included + (false). + + + + + Check if all days are excluded. That is no day is included. + + 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. + + + + Get or set the array which defines the exclude-value of each day of month + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes a set of days of the week. You + may use it to exclude weekends for example. But you may define any day of + the week. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if wday is defined to be exluded. E. g. + saturday and sunday. + + + + + Redefine a certain day of the week to be excluded (true) or included + (false). Use enum to determine the weekday. + + + + + 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. + + + + + + Get the array with the week days. + Setting will redefine the array of days excluded. The array must of size greater or + equal 8. java.util.Calendar's constants like MONDAY should be used as + index. A value of true is regarded as: exclude it. + + + + + Matches using an AND operator on two Matcher operands. + + James House + Marko Lahma (.NET) + + + + Matchers can be used in various API methods to + select the entities that should be operated upon. + + James House + + + + + Create an AndMatcher that depends upon the result of both of the given matchers. + + + + + + + + + Matches on the complete key being equal (both name and group). + + + + jhouse + + + + Create an EverythingMatcher that matches all jobs. + + + + + + Create an EverythingMatcher that matches all triggers. + + + + + + Matches on group (ignores name) property of Keys. + + James House + Marko Lahma (.NET) + + + + An abstract base class for some types of matchers. + + James House + Marko Lahma (.NET) + + + + Create a GroupMatcher that matches groups equaling the given string. + + + + + + + Create a GroupMatcher that matches groups starting with the given string. + + + + + + + Create a GroupMatcher that matches groups ending with the given string. + + + + + + + Create a GroupMatcher that matches groups containing the given string. + + + + + + + Matches on the complete key being equal (both name and group). + + James House + Marko Lahma (.NET) + + + + Create a KeyMatcher that matches Keys that equal the given key. + + + + + + + + Matches on name (ignores group) property of Keys. + + James House + Marko Lahma (.NET) + + + + Create a NameMatcher that matches names equaling the given string. + + + + + + + Create a NameMatcher that matches names starting with the given string. + + + + + + + Create a NameMatcher that matches names ending with the given string. + + + + + + + Create a NameMatcher that matches names containing the given string. + + + + + + + Matches using an NOT operator on another Matcher. + + James House + Marko Lahma (.NET) + + + + Create a NotMatcher that reverses the result of the given matcher. + + + + + + + + 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. + + + + + + + + + Operators available for comparing string values. + + + + + The base abstract class to be extended by all triggers. + + + + 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 + Marko Lahma (.NET) + + + + Internal interface for managing triggers. This interface should not be used by the Quartz client. + + + + + Should not be used by end users. + + + + + The base interface with properties common to all s - + use to instantiate an actual Trigger. + + + + 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) + + + + Get a that is configured to produce a + schedule identical to this trigger's schedule. + + + + + + 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. + + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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 . + + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + 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. + + + + + Associate the with the given name with this Trigger. + + + + + Set the to be associated with the + . + + + + + 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. + + + + + + + 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; } + + + + + + Set the time at which the should quit repeating - + regardless of any remaining repeats (based on the trigger's particular + repeat settings). + + + + + + + + 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 not explicitly set, the default value is . + + + + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + 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. + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 + . + + + + + 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. + + + + 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. + + + + 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. + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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 . + + + + + + 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 next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. + + + + + 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. + + + + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + Return a simple string representation of this object. + + + + + 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. + + + + + + + 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. + + + + + Trigger equality is based upon the equality of the TriggerKey. + + + true if the key of this Trigger equals that of the given Trigger + + + + 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 . + + + + + Creates a new object that is a copy of the current instance. + + + 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. + + + if group is an empty string. + + + + + 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. + + + + + Returns the 'full name' of the in the format + "group.name". + + + + + Gets the key. + + The key. + + + + Returns the 'full name' of the that the + points to, in the format "group.name". + + + + + Get or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + 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. + + + + + + + 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. + + + + + 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) + + + + A that is used to fire a + based upon repeating calendar time intervals. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + Get the number of times the has already fired. + + + + + Gets the time zone within which time calculations related to this trigger will be performed. + + + If null, the system default TimeZone will be used. + + + + + 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). + + + + + + Create a with no settings. + + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + Validates the misfire instruction. + + The misfire instruction. + + + + + 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
  • +
+
+
+ + + 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). + + + + + + + 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). + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + + Get the time at which the should occur. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + Get the time at which the should quit + repeating. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + 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). + + + + + + Get 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. + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + 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' . + + + + + 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 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' . + + + + + 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. + + + + + SchedulerException + + + + 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. + + + + + + + + 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 + preventing garbage collection, and allowing 'global' lookups. + + James House + Marko Lahma (.NET) + + + + Binds the specified sched. + + The sched. + + + + Removes the specified sched name. + + Name of the sched. + + + + + Lookups the specified sched name. + + Name of the sched. + + + + + Lookups all. + + + + + + Gets the singleton instance. + + The instance. + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + Called by the to obtain instances of + . + + + + + An implementation of the interface that directly + proxies all method calls to the equivalent call on a given + instance. + + + + James House + Marko Lahma (.NET) + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Construct a instance to proxy the given + 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 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' . + + + + + 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. + UnableToInterruptJobException if the job does not implement + + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + 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. + + + + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + + + + + An implementation of that + does all of it's work of creating a instance + 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 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 + file will be set on the instance by calling an equivalent 'set' method. For + example if the properties file contains the property 'quartz.jobStore. + myProp = 10' then after the JobStore class has been instantiated, the property + '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. + + + + + Initializes a new instance of the class. + + The props. + + + + 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 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. + + + + + Creates a new name value collection and overrides its values + with system values (environment variables). + + The base properties to override. + A new NameValueCollection instance. + + + + Initialize the with + 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 + will be called by this method. + + + + + Returns a handle to the Scheduler with the given name, if it exists (if + it has already been instantiated). + + + + + + Returns a handle to all known Schedulers (made by any + StdSchedulerFactory instance.). + + + + + + 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) + + + + + The interface to be implemented by classes which represent a 'job' to be + performed. + + + Instances of this interface must have a + 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 + 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. + + + 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 + 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. + + + + + + Gets the last modified date. + + Name of the file. + + + + + Gets the log. + + 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) + + + + + Ïnforms that certain file has been updated. + + Name of the file. + + + + 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) + + + + Required parameter that specifies the name of the command (executable) + to be ran. + + + + + Optional parameter that specifies the parameters to be passed to the + executed command. + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the job should wait for the execution of the native process to + complete before it completes. + + Defaults to . + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the spawned process's stdout and stderr streams should be + consumed. If the process creates output, it is possible that it might + 'hang' if the streams are not consumed. + + Defaults to . + + + + + Optional parameter that specifies the workling directory to be used by + the executed command. + + + + + Initializes a new instance of the class. + + + + + 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. + + + + + + + Gets the log. + + The log. + + + + Consumes data from the given input stream until EOF and prints the data to stdout + + cooste + James House + + + + Initializes a new instance of the class. + + The enclosing instance. + The input stream. + The type. + + + + Runs this object as a separate thread, printing the contents of the input stream + supplied during instantiation, to either Console. or stderr + + + + + An implementation of Job, that does absolutely nothing - useful for system + which only wish to use s + and s, rather than writing + Jobs that perform work. + + James House + Marko Lahma (.NET) + + + + Do nothing. + + + + + A Job which sends an e-mail with the configured content to the configured + recipient. + + James House + Marko Lahma (.NET) + + + The host name of the smtp server. REQUIRED. + + + The e-mail address to send the mail to. REQUIRED. + + + The e-mail address to cc the mail to. Optional. + + + The e-mail address to claim the mail is from. REQUIRED. + + + The e-mail address the message should say to reply to. Optional. + + + The subject to place on the e-mail. REQUIRED. + + + 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 + events to them (in order). + + + This 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 + 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 TriggerListener 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) + + + + The interface to be implemented by classes that want to be informed when 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 + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + + The that will be passed to the 's method. + + + + + 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. 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 + 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. + + + + 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. + + + + + 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. + + + + the name of this instance + the initial List of TriggerListeners to broadcast to. + + + + Keeps a collection of mappings of which Job to trigger after the completion + of a given job. If this listener is notified of a job completing that has a + mapping, then it will then attempt to trigger the follow-up job. This + 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) + + + + + Initializes a new instance of the class. + + + + + 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 + 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. + + + + + + + Get the for this class's category. + This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Construct an instance with the given name. + + 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 JobKey with the name and group of the first job + a JobKey with the name and group of the follow-up job + + + + 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) + + + + + Get the for this + class's category. This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Logs a history of all job executions (and execution vetos) via common + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8ObjectThe string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8StringThe message from the thrown JobExecution Exception. +
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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) +
+ + + Provides an interface for a class to become a "plugin" to Quartz. + + + Plugins can do virtually anything you wish, though the most interesting ones + 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) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + 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. + + + The scheduler to which the plugin is registered. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + 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 when a + was about to be executed (an associated + has occured), but a vetoed it's + execution. + + + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or sets the message that is logged when a Job successfully completes its + execution. + + + + + Get or sets the message that is logged when a Job fails its + execution. + + + + + Gets or sets the message that is logged when a Job is about to Execute. + + + + + Gets or sets the message that is logged when a Job execution is vetoed by a + trigger listener. + + + + + Get the name of the . + + + + + + Logs a history of all trigger firings via the Jakarta Commons-Logging + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time. (the time the misfire was detected/handled)
5StringThe Job's name.
6StringThe Job's group.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe job completion time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
8IntegerThe trigger's resulting instruction code.
9StringA human-readable translation of the trigger's resulting instruction + code.
+ + 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) +
+ + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called by the when a + has fired, and it's associated + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + The that will be passed to the 's method. + + + + 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. + + + + 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. + + + + 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. + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or set the message that is printed upon the completion of a trigger's + firing. + + + + + Get or set the message that is printed upon a trigger's firing. + + + + + Get or set the message that is printed upon a trigger's mis-firing. + + + + + Get the name of the . + + + + + + This plugin catches the event of the VM terminating (such as upon a CRTL-C) + and tells the scheuler to Shutdown. + + + James House + Marko Lahma (.NET) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Determine whether or not the plug-in is configured to cause a clean + Shutdown of the scheduler. + + The default value is . + + + + + + + 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 + file for changes. + + + The periodically scanning of files for changes is not currently supported in a + clustered environment. + + James House + Pierre Awaragi + + + + Initializes a new instance of the class. + + + + + + + + + + + Called during creation of the in order to give + the a chance to initialize. + + The name. + 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. + + + + + 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 . + + + + + Information about a file that should be processed by . + + + + + Default object serialization strategy that uses + under the hood. + + Marko Lahma + + + + Interface for object serializers. + + Marko Lahma + + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize, always non-null. + + + + Deserializes object from byte array presentation. + + Data to deserialize object from, always non-null and non-empty. + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize. + + + + Deserializes object from byte array presentation. + + 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 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 + + The clusterwide unique instance id. + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + A JobFactory that instantiates the Job instance (using the default no-arg + 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 + Marko Lahma (.NET) + + + + The default JobFactory used by Quartz - simply calls + on the job class. + + + + James House + Marko Lahma (.NET) + + + + A JobFactory is responsible for producing instances of + classes. + + + This interface 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. + + + + + 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 + Scheduler will move all triggers associated with the Job into the + 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. + + 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. + + + 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 + Scheduler will move all triggers associated with the Job into the + 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 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 + Scheduler will move all triggers associated with the Job into the + 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 newly instantiated Job + SchedulerException if there is a problem instantiating the Job. + + + + Sets the object properties. + + The object to set properties to. + The data to set. + + + + Whether the JobInstantiation should fail and throw and exception if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + Get or set whether a warning should be logged if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + 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 + Marko Lahma (.NET) + + + + 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 + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Clears (deletes!) all scheduling data - all s, s + s. + + + + + Store the given and . + + 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 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. + + + if a with the given name and + group was found and removed from the store. + + + + + Remove (delete) the with the + given name. + + + if a with the given + name and group was found and removed from the store. + + + + + Store the given . + + 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. + + + + if a with the given + name and group was found and removed from the store. + + The to be removed. + Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger. + + + + Replaces the trigger. + + The of the to be replaced. + The new trigger. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Retrieve the given . + + + 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 . + + + + + + + + + + + Store the given . + + 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 . + + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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 + 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 + that have the given group name. + + + + + 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. + + + + + + Gets the trigger wrappers for calendar. + + Name of the cal. + + + + + Pause the with the given name. + + + + + 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 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 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 the + given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + Applies the misfire. + + 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 + (reserved). + + + + + Inform the that the scheduler is now firing the + 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 + associated ), and that the + in the given should be updated if the + is stateful. + + + + + Sets the state of all triggers of job to specified state. + + + + + Peeks the triggers. + + + + + + + + + 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. + + + + + Returns whether this instance supports persistence. + + + + + + + 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. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Possible internal trigger states + in RAMJobStore + + + + + Waiting + + + + + Acquired + + + + + Executing + + + + + Complete + + + + + Paused + + + + + Blocked + + + + + Paused and Blocked + + + + + Error + + + + + Helper wrapper class + + + + + The key used + + + + + Job's key + + + + + The trigger + + + + + Current state + + + + + 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. + + + + + 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 . + + + + + Scheduler exporter that exports scheduler to remoting context. + + Marko Lahma + + + + Service interface for scheduler exporters. + + Marko Lahma + + + + Binds (exports) scheduler to external context. + + + + + + Unbinds scheduler from external context. + + + + + + Registers remoting channel if needed. This is determined + by checking whether there is a positive value for port. + + + + + Gets or sets the port used for remoting. + + + + + Gets or sets the name to use when exporting + scheduler to remoting context. + + + + + Gets or sets the name to use when binding to + tcp channel. + + + + + Sets the channel type when registering remoting. + + + + + + Sets the used when + exporting to remoting context. Defaults to + . + + + + + A implementation that creates + connection to remote scheduler using remoting. + + + + + Client Proxy to a IRemotableQuartzScheduler + + + + + Returns a client proxy to a remote . + + + + + Returns a client proxy to a remote . + + + + + Gets or sets the remote scheduler address. + + 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) + + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + 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) + + + + The interface to be implemented by classes that want to provide a thread + pool for the 's use. + + + implementation instances should ideally be made + for the sole use of Quartz. Most importantly, when the method + returns a value of 1 or greater, + there must still be at least one available thread in the pool when the + method is called a few moments (or + many moments) later. If this assumption does not hold true, it may + result in extra JobStore queries and updates, and if clustering features + are being used, it may result in greater imballance of load. + + + James House + Marko Lahma (.NET) + + + + 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 implementation of this method should block until there is at + least one available thread. + + the number of currently available threads + + + + Must be called before the is + used, in order to give the it a chance to Initialize. + + + Typically called by the . + + + + + Called by the QuartzScheduler to inform the + that it should free up all of it's resources because the scheduler is + shutting down. + + + + + 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. + + + + + Create a new (unconfigured) . + + + + + Create a new with the specified number + of s that have the given priority. + + + the number of worker s in the pool, must + be > 0. + + + the thread priority for the worker threads. + + + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Run the given object in the next available + . If while waiting the thread pool is asked to + shut down, the Runnable is executed immediately within a new additional + thread. + + The to be added. + + + + Creates the worker threads. + + The thread count. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Gets or sets the number of worker threads in the pool. + Set has no effect after has been called. + + + + + Get or set the thread priority of worker threads in the pool. + Set operation has no effect after has been called. + + + + + Gets or sets the thread name prefix. + + The thread name prefix. + + + + Gets or sets the value of makeThreadsDaemons. + + + + + Gets the size of the pool. + + 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. + + + + + Create a worker thread and start it. Waiting for the next Runnable, + executing it, and waiting for the next Runnable, until the Shutdown + flag is set. + + + + + Create a worker thread, start it, Execute the runnable and terminate + the thread (one time execution). + + + + + Signal the thread that it should terminate. + + + + + Loop, executing targets as they are received. + + + + + A that simply calls . + + + James House + Marko Lahma (.NET) + + + + 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 Uri 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 Stream object + + + + + InstanceIdGenerator that will use a to configure the scheduler. + If no value set for the property, a is thrown. + Alex Snaps + + + + + System property to read the instanceId from. + + + + + Returns the cluster wide value for this scheduler instance's id, based on a system property. + + + + + A string of text to prepend (add to the beginning) to the instanceId found in the system property. + + + + + A string of text to postpend (add to the end) to the instanceId found in the system property. + + + + + The name of the system property from which to obtain the instanceId. + + + Defaults to . + + + + + This is class is a simple implementation of a zero size thread pool, based on the + 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 + Marko Lahma (.NET) + + + + 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. + + + + 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 simple class (structure) used for returning execution-time data from the + JobStore to the . + + + James House + Marko Lahma (.NET) + + + + 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. + + + + + Result holder for trigger firing event. + + + + + Constructor. + + + + + + Constructor. + + + + + Bundle. + + + + + Possible exception. + + + + + Extension methods for . + + + + + Tries to read value and returns the value if successfully read. Otherwise return default value + for value's type. + + + + + + + + + + Extension methods for simplified access. + + + + + Returns string from given column name, or null if DbNull. + + + + + Returns int from given column name. + + + + + Returns long from given column name. + + + + + Returns long from given column name, or null if DbNull. + + + + + Returns decimal from given column name. + + + + + Manages a collection of IDbProviders, and provides transparent access + to their database. + + + James House + Sharada Jambula + Mohammad Rezaei + Marko Lahma (.NET) + + + + 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. + + Name of the ds. + + + + + Get the class instance. + + an instance of this class + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified. + + James House + Marko Lahma (.NET) + + + + Create a DirtyFlagMap that 'wraps' a . + + + + + Create a DirtyFlagMap that 'wraps' a that has the + given initial capacity. + + + + + Serialization constructor. + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + When implemented by a class, removes all elements from the . + + + The is read-only. + + + + + When implemented by a class, determines whether the contains an element with the specified key. + + 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 key of the element to remove. + + is . + + The is read-only. + -or- + The has a fixed size. + + + + + When implemented by a class, returns an + for the . + + + An for the . + + + + + When implemented by a class, adds an element with the provided key and value to the . + + 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. + + 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 ). + + + + + Determines whether the specified obj contains value. + + The obj. + + true if the specified obj contains value; otherwise, false. + + + + + Gets the entries as a set. + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets keyset for this map. + + + + + + Puts the value behind a specified key. + + The key. + The val. + + + + + Puts all. + + The t. + + + + Determine whether the is flagged dirty. + + + + + Get a direct handle to the underlying Map. + + + + + Gets a value indicating whether this instance is empty. + + true if this instance is empty; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + When implemented by a class, gets the number of + elements contained in the . + + + + + + When implemented by a class, gets an containing the values in the . + + + + + + When implemented by a class, gets an containing the keys of the . + + + + + + When implemented by a class, gets a value indicating whether the + is read-only. + + + + + + When implemented by a class, gets a value indicating whether the + has a fixed size. + + + + + + When implemented by a class, gets an object that + can be used to synchronize access to the . + + + + + + When implemented by a class, gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + Utility class for file handling related things. + + Marko Lahma + + + + Resolves file to actual file if for example relative '~' used. + + File name to check + Expanded file name or actual no resolving was done. + + + + Object representing a job or trigger key. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + The default group for scheduling entities, with the value "DEFAULT". + + + + + Construct a new key with the given name and group. + + the name + the group + + + + Return the string representation of the key. The format will be: + <group>.<name>. + + + + the string representation of the key + + + + + Get the name portion of the key. + + the name + + + + + Get the group portion of the key. + + + + 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. + + Marko Lahma .NET + + + + 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 + + + + 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. + + + + Empties a data slot with the specified name. + + The name of the data slot to empty. + + + + Generic extension methods for objects. + + + + + Creates a deep copy of object by serializing to memory stream. + + + + + + Utility methods that are used to convert objects from one type into another. + + Aleksandar Seovic + Marko Lahma + + + + 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. + + + + 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. + + + + + Instantiates an instance of the type specified. + + + + + + Sets the object properties using reflection. + + + + + Sets the object properties using reflection. + + The object to set values to. + The properties to set to object. + + + + This is an utility class used to parse the properties. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + The props. + + + + Gets the string property. + + The name. + + + + + Gets the string property. + + The name. + The default value. + + + + + Gets the string array property. + + The name. + + + + + Gets the string array property. + + The name. + The default value. + + + + + Gets the boolean property. + + The name. + + + + + Gets the boolean property. + + The name. + if set to true [defaultValue]. + + + + + Gets the byte property. + + The name. + + + + + Gets the byte property. + + The name. + The default value. + + + + + Gets the char property. + + The name. + + + + + Gets the char property. + + The name. + The default value. + + + + + Gets the double property. + + The name. + + + + + Gets the double property. + + The name. + The default value. + + + + + Gets the float property. + + The name. + + + + + Gets the float property. + + The name. + The default value. + + + + + Gets the int property. + + The name. + + + + + Gets the int property. + + The name. + The default value. + + + + + Gets the int array property. + + The name. + + + + + Gets the int array property. + + The name. + The default value. + + + + + Gets the long property. + + The name. + + + + + Gets the long property. + + The name. + The def. + + + + + Gets the TimeSpan property. + + The name. + The def. + + + + + Gets the short property. + + The name. + + + + + Gets the short property. + + The name. + The default value. + + + + + Gets the property groups. + + The prefix. + + + + + Gets the property group. + + The prefix. + + + + + Gets the property group. + + The prefix. + if set to true [strip prefix]. + + + + + 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. + + + + Reads the properties from assembly (embedded resource). + + The file name to read resources from. + + + + + Reads the properties from file system. + + The file name to read resources from. + + + + + Gets the underlying properties. + + The underlying properties. + + + + Extension methods for . + + + + + Allows null-safe trimming of string. + + + + + + + Trims string and if resulting string is empty, null is returned. + + + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified, enforces that all keys are + strings. + + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The initial capacity. + + + + Serialization constructor. + + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets the keys. + + + + + + Adds the name-value pairs in the given to the . + + All keys must be s, and all values must be serializable. + + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reports JobSchedulingDataProcessor validation exceptions. + + Chris Bonham + Marko Lahma (.NET) + + + + Constructor for ValidationException. + + + + + Constructor for ValidationException. + + exception message. + + + + Constructor for ValidationException. + + collection of validation exceptions. + + + + 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. + + + + Gets the validation exceptions. + + The validation exceptions. + + + + Returns the detail message string. + + + + + 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) + + + + Constructor for XMLSchedulingDataProcessor. + + + + + Process the xml file in the default location (a file named + "quartz_jobs.xml" in the current working directory). + + + + + Process the xml file named . + + meta data file name. + + + + Process the xmlfile named with the given system + ID. + + Name of the file. + The system id. + + + + Process the xmlfile named with the given system + ID. + + The stream. + The system id. + + + + 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. + + + + + + Process the xml file in the default location, and schedule all of the + jobs defined within it. + + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + meta data file name. + The scheduler. + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + Name of the file. + The system id. + The sched. + + + + Schedules the given sets of jobs and triggers. + + The sched. + + + + Adds a detected validation exception. + + The exception. + + + + Resets the the number of detected validation exceptions. + + + + + Throws a ValidationException if the number of validationExceptions + detected is greater than zero. + + + DTD validation exception. + + + + + Whether the existing scheduling data (with same identifiers) will be + overwritten. + + + 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. + + + + + + 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 log. + + The log. + + + + Helper class to map constant names to their values. + + + + + CalendarIntervalScheduleBuilder is a + that defines calendar time (day, week, month, year) interval-based + schedules for Triggers. + + + + 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); + + + + + + + + + + + Base class for implementors. + + + + + + Schedule builders offer fluent interface and are responsible for creating schedules. + + + + + + + + + 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. + + + + + + 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. + + + + + + Create a CalendarIntervalScheduleBuilder. + + + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.HOUR that the produced + Trigger will repeat at. + + + + the number of hours at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.DAY that the produced + Trigger will repeat at. + + + + the number of days at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 + + + + + + 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 + + + + + + Specify an interval in the IntervalUnit.YEAR that the produced + Trigger will repeat at. + + + + the number of years at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + TimeZone in which to base the schedule. + + the time-zone for the schedule + the updated CalendarIntervalScheduleBuilder + + + + + 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). + + + + + + Extension methods that attach to . + + + + + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - /// /
Minutes 0-59 , - /// /
Hours 0-23 , - /// /
Day-of-month 1-31 , - /// ? / L W C
Month 1-12 or JAN-DEC , - /// /
Day-of-Week 1-7 or SUN-SAT , - /// ? / L #
Year (Optional) empty, 1970-2199 , - /// /
+ + 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 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 + 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. + + + + + 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. + + + + + Hours. + + + + + Days of month. + + + + + Months. + + + + + Days of week. + + + + + Years. + + + + + Last day of week. + + + + + 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. + + + 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. + + + + + Gets the numeric value from string. + + The string to parse from. + The i. + + + + + Gets the month number. + + The string to map with. + + + + + Gets the day of week number. + + The s. + + + + + Gets the time from given time parts. + + The seconds. + The minutes. + The hours. + The day of month. + The month. + + + + + Gets the next fire time after the given time. + + The UTC time to start searching from. + + + + + Creates the date time without milliseconds. + + The time. + + + + + Advance the calendar to the particular hour paying particular attention + to daylight saving problems. + + The date. + The hour. + + + + + Gets the time before. + + The end time. + + + + + NOT YET IMPLEMENTED: Returns the final time that the + will match. + + + + + + Determines whether given year is a leap year. + + The year. + + 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. + + + A new object that is a copy of this instance. + + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Sets or gets the time zone for which the of this + will be resolved. + + + + + Gets the cron expression string. + + The cron expression string. + + + + Helper class for cron expression handling. + + + + + The value. + + + + + The position. + + + + + 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); + + + + + + + + + + + + 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. + + + + + + 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 + + + + + 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 + + + + + Create a CronScheduleBuilder with the given cron-expression. + + the cron expression to base the schedule on. + the new CronScheduleBuilder + + + + + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire every day at the given time (hour and minute). + + + + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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 + + + + + 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). + + + + the day of the week to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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). + + + + the day of the month to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + The in which to base the schedule. + + + + the time-zone for the schedule. + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + Extension methods that attach to . + + + + + A implementation that build schedule for DailyTimeIntervalTrigger. + + + + 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); + + + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) + + + + A set of all days of the week. + + + The set contains all values between and + + + + + A set of the business days of the week (for locales similar to the USA). + + + The set contains all values between and + + + + + A set of the weekend days of the week (for locales similar to the USA). + + + The set contains and + + + + + Create a DailyTimeIntervalScheduleBuilder + + The new DailyTimeIntervalScheduleBuilder + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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> + + + + + + 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> + + + + + + Specify an interval in the IntervalUnit.Hour that the produced + Trigger will repeat at. + + The number of hours at which the trigger should repeat. + the updated DailyTimeIntervalScheduleBuilder> + + + + + + 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 + + + + Set the trigger to fire on the given days of the week. + + a variable length list of week days representing the days of the week + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days from Monday through Friday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days Saturday and Sunday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on all days of the week. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to begin firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the startTimeOfDay for this trigger to end firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Calculate and set the EndTimeOfDay using count, interval and StarTimeOfDay. This means + that these must be set before this method is call. + + + the updated DailyTimeIntervalScheduleBuilder + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + Set number of times for interval to repeat. + + + Note: if you want total count = 1 (at start time) + repeatCount + + + + + + + Extension methods that attach to . + + + + + DateBuilder is used to conveniently create + instances that meet particular criteria. + + + + 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); + + + + + + + + Create a DateBuilder, with initial settings for the current date + and time in the system default timezone. + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the system default timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + Time zone to use. + + + + + Build the defined by this builder instance. + + New date time based on builder parameters. + + + + Set the hour (0-23) for the Date that will be built by this builder. + + + + + + + Set the minute (0-59) for the Date that will be built by this builder. + + + + + + + Set the second (0-59) for the Date that will be built by this builder, and truncate the milliseconds to 000. + + + + + + + Set the day of month (1-31) for the Date that will be built by this builder. + + + + + + + Set the month (1-12) for the Date that will be built by this builder. + + + + + + + Set the year for the Date that will be built by this builder. + + + + + + + Set the TimeZoneInfo for the Date that will be built by this builder (if "null", system default will be used) + + + + + + + Get a object that represents the given time, on + tomorrow's date. + + + + + + + + + Get a object that represents the given time, on + today's date (equivalent to . + + + + + + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + + 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 + + + + 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 + + + + 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 + + + + Returns a date that is rounded to the next even second after the current time. + + the new rounded date + + + + 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 + + + + 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 + + + + 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 + +
+ + + 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 + + + + + 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) + + + + 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) + + + + Called by the when a user + interrupts the . + + void (nothing) if job interrupt is successful. + + + + Supported interval units used by . + + + + + 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) + + + + 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); + + + + + + + + + Create a JobBuilder with which to define a . + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Produce the instance defined by this JobBuilder. + + the defined JobDetail. + + + + Use a with the given name and default 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 updated JobBuilder + + + + + + 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 + + + + + + Use a to identify the JobDetail. + + + 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 + + + + + + Set the given (human-meaningful) description of the Job. + + the description for the Job + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + 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 + + + + + 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 + + + + 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 updated JobBuilder + + + + + 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 + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + 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 + + + + + Holds state information for instances. + + + 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) + + + + Create an empty . + + + + + Create a with the given data. + + + + + Create a with the given data. + + + + + Serialization constructor. + + + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + 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 . + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Gets the date time. + + The key. + + + + + 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 + occurred while executing, and whether or not the requests + to be re-fired immediately (using the same , + or whether it wants to be unscheduled. + + + Note that if the flag for 'refire immediately' is set, the flags for + unscheduling the Job are ignored. + + + + + James House + Marko Lahma (.NET) + + + + Create a JobExcecutionException, with the 're-fire immediately' flag set + to . + + + + + Create a JobExcecutionException, with the given cause. + + The cause. + + + + Create a JobExcecutionException, with the given message. + + + + + Initializes a new instance of the class. + + The message. + The original cause. + + + + Create a JobExcecutionException with the 're-fire immediately' flag set + to the given value. + + + + + Create a JobExcecutionException with the given underlying exception, and + the 're-fire immediately' flag set to the given value. + + + + + Create a JobExcecutionException with the given message, and underlying + exception, and the 're-fire immediately' flag set to the given value. + + + + + 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. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + Gets or sets a value indicating whether to unschedule firing trigger. + + + true if firing trigger should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to unschedule all triggers. + + + true if all triggers should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to refire immediately. + + 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) + + + + Instruction not set (yet). + + + + + 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. + + + + + Instructs the that upon a mis-fire + 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 + 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. + + + + 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 + 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 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 + 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 + 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 + 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 + 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 + to go directly to the 'COMPLETE' state if all the end-time of the trigger + has arrived. + + + + + + misfire instructions for CronTrigger + + + + + 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 NthIncludedDayTrigger + + + + + Instructs the that upon a mis-fire situation, the + wants to be fired now by the + + + + + + Instructs the that upon a mis-fire situation, the + wants to have + nextFireTime updated to the next time in the schedule after + 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 + , or + that is not excluded by the associated + calendar. + + + When determining what the Nth day of the month or year + is, will skip excluded days on the + associated calendar. This would commonly be used in an Nth + business day situation, in which the user wishes to fire a particular job on + the Nth business day (i.e. the 5th business day of + 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 + values can be changed using the , , and + 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 + 1 W 1 2 3 4 5 W 1 2 W + W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W + W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W + W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W + W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30 + W + + Where W's represent weekend days, and H's represent holidays, all of which + are excluded on a calendar associated with an + with n=5 and + intervalType=IntervalTypeMonthly. In this case, the trigger + would fire on the 8th of July (because of the July 4 holiday), + the 5th of August, and the 8th of September (because + of Labor Day). + + Aaron Craven + Marko Lahma (.NET) + + + + Indicates a monthly trigger type (fires on the Nth included + day of every month). + + + + indicates a yearly trigger type (fires on the Nth included + day of every year). + + + + + Indicates a weekly trigger type (fires on the Nth included + day of every week). When using this interval type, care must be taken + not to think of the value of as an analog to + . Such a comparison can only + be drawn when there are no calendars associated with the trigger. To + illustrate, consider an with + n = 3 which is associated with a Calendar excluding + non-weekdays. The trigger would fire on the 3rd + included day of the week, which would be 4th + actual day of the week. + + + + + Create an with no specified name, + 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 + called before the can be placed into + a . + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + the group for the + + + + + Create an with the given name and + 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=, + fireAtTime="12:00"). + + The name for the . + The group for the . + The name of the job to associate with the . + The group containing the job to associate with the . + + + + Returns the next UTC time at which the + will fire. If the trigger will not fire again, will be + 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 + + + + + Returns the previous UTC time at which the + fired. If the trigger has not yet + fired, will be returned. + + 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 + weeks after the given date/time, will be returned. For + triggers with intervalType = + + , if the trigger will not fire within 12 + months after the given date/time, will be returned. + For triggers with intervalType = + + , if the trigger will not fire within 12 + 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, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + + the first time the trigger will fire following the specified date + + + + + 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). + + + + + 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 ). + + + + + Called after the has executed the + associated with the in order + to get the final instruction code from the trigger. + + + The that was used by the + 's method. + + + The thrown by the + , if any (may be ) + + one of the Trigger.INSTRUCTION_XXX constants. + + + + + 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 + + + + + A boolean indicator of whether the trigger could potentially fire + again. + + + + + Indicates whether is a valid misfire + instruction for this . + + Whether is valid. + + + Updates the 's state based on the + MisfireInstruction that was selected when the + was created +

+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY, + then the instruction will be interpreted as + . +

+
+ a new or updated calendar to use for the trigger + +
+ + + Updates the 's state based on the + given new version of the associated . + + A new or updated calendar to use for the trigger + the amount of time that must + be between "now" and the time the next + firing of the trigger is supposed to occur. + + + + + Calculates the first time an with + intervalType = IntervalTypeWeekly will fire + after the specified date. See for more + information. + + The time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + date + + + + + Calculates the first UTC time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified date + + + + Calculates the first time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + 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 + should fire. If the Nth + day of the interval does not exist (i.e. the 32nd of a + month), the trigger simply will never fire. N may not be less than 1. + + + + + Returns the interval type for the . + + + Sets the interval type for the . If + , the trigger will fire on the + Nth included day of every month. If + , the trigger will fire on the + Nth included day of every year. If + , the trigger will fire on the + Nth included day of every week. + + + + + + + + Returns the fire time for the as a + string with the format "HH:MM[:SS]", with HH representing the + 24-hour clock hour of the fire time. Seconds are optional and their + inclusion depends on whether or not they were provided to + . + + + + + Returns the for the + . + + + + 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. + + + + + + Returns the last UTC time the will fire. + If the trigger will not fire at any point between + and , will be returned. + + the last time the trigger will fire. + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + + Sets or gets the time zone in which the will be resolved. + If no time zone is provided, then the default time zone will be used. + + + + + + + Gets or sets the trigger's calendar week rule. + + The trigger calendar week rule. + + + + Gets or sets the trigger's calendar first day of week rule. + + The trigger calendar first day of week. + + + + An exception that is thrown to indicate that an attempt to store a new + 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. + + + + + + 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 and auto-generate a + 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 . + + + + 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 + the - or one of the components it + configures. + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given message + and cause. + + + + + 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. + + + + 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 + has no further instructions. + + + + + 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 + ability to 'see' anything placed in the context by its last execution). + + + + + Instructs the that the + should be put in the state. + + + + + Instructs the that the + wants itself deleted. + + + + + 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 + this one should be put in the state. + + + + + Instructs the that the + should be put in the state. + + + + + Describes the settings and capabilities of a given + instance. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + Name of the scheduler. + The scheduler instance. + The scheduler type. + if set to true, scheduler is a remote scheduler. + if set to true, scheduler is started. + 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 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. + + + + Returns a formatted (human readable) string describing all the 's + 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.
+            
+
+
+
+ + + Return a simple string representation of this object. + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the class-name of the instance. + + + + + Returns whether the is being used remotely (via remoting). + + + + + Returns whether the scheduler has been started. + + + Note: may return even if + returns . + + + + + Reports whether the is in standby mode. + + + Note: may return even if + returns . + + + + + Reports whether the has been Shutdown. + + + + + Returns the class-name of the instance that is + being used by the . + + + + + Returns the type name of the instance that is + being used by the . + + + + + Returns the number of threads currently in the 's + + + + + Returns the version of Quartz that is 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.. + + + + + Returns whether or not the 's + instance supports persistence. + + + + + Returns whether or not the 's + is clustered. + + + + + 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 SimpleScheduleBuilder. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 minute interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of minutes. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 second interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of seconds. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 hour interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of hours. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 minute interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of minutes. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 second interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of seconds. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 hour interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + 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 + + + + 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. + + + + + + + + Specify a repeat interval in milliseconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + Specify a repeat interval in seconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + 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 + + + + + + Specify that the trigger will repeat indefinitely. + + + + the updated SimpleScheduleBuilder + + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + 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. + + + + + 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 + + + + 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. + + + + 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. + + + + Gets the rule. + + The rule. + + + + Possible parse rules for s. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TriggerBuilder 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 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); + + + + + + + + + + Create a new TriggerBuilder with which to define a + specification for a Trigger. + + + + the new TriggerBuilder + + + + Produce the . + + + + a Trigger that meets the specifications of the builder. + + + + Use a with the given name and default 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 updated TriggerBuilder + + + + + + 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 + + + + + + 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 + + + + + + Set the given (human-meaningful) description of the Trigger. + + + + the description for the Trigger + the updated TriggerBuilder + + + + + 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 + + + + + + Set the name of the that should be applied to this + Trigger's schedule. + + + + the name of the Calendar to reference. + the updated TriggerBuilder + + + + + + 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 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 updated TriggerBuilder + + + + + Set the time at which the Trigger will no longer fire - even if it's + schedule has remaining repeats. + + + + the end time for the Trigger. If null, the end time is indefinite. + the updated TriggerBuilder + + + + + + Set the that will be used to define the + Trigger's schedule. + + + The particular used will dictate + the concrete type of Trigger that is produced by the TriggerBuilder. + + the SchedulerBuilder to use. + the updated TriggerBuilder + + + + + + + + Set the identity of the Job which should be fired by the produced + Trigger. + + + + the identity of the Job to fire. + the updated TriggerBuilder + + + + + 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. + + + + the name of the job (in default group) to fire. + the updated TriggerBuilder + + + + + 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 name of the job to fire. + the group of the job to fire. + the updated TriggerBuilder + + + + + Set the identity of the Job which should be fired by the produced + Trigger, by extracting the JobKey from the given job. + + + + the Job to fire. + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Common constants for triggers. + + + + + The default value for priority. + + + + + 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); + + + + + + + + All trigger states known to Scheduler. + + Marko Lahma (.NET) + + + + Indicates that the is in the "normal" state. + + + + + Indicates that the is in the "paused" state. + + + + + Indicates that the is in the "complete" state. + + + "Complete" indicates that the trigger has not remaining fire-times in + its schedule. + + + + + Indicates that the is in the "error" state. + + + + 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. + + + + + + Indicates that the is in the "blocked" state. + + + A arrives at the blocked state when the job that + it is associated with has a and it is + currently executing. + + + + + + Indicates that the does not exist. + + + + + 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. + + + + + Convenience and utility methods for simplifying the construction and + configuration of s and DateTimeOffsetOffsets. + + + + 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. + + 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 + 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 + 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 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 + The starting date at which to find fire times + The ending date at which to stop finding fire times + List of java.util.Date objects + + + + An exception that is thrown to indicate that a call to + failed without interrupting the Job. + + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given cause. + + + + + 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. + +
+
diff --git a/packages/Quartz.2.0.1/lib/net40/C5.dll b/packages/Quartz.2.0.1/lib/net40/C5.dll new file mode 100644 index 0000000..2130d1f Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net40/C5.dll differ diff --git a/packages/Quartz.2.0.1/lib/net40/Quartz.dll b/packages/Quartz.2.0.1/lib/net40/Quartz.dll new file mode 100644 index 0000000..9b35e47 Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net40/Quartz.dll differ diff --git a/packages/Quartz.2.0.1/lib/net40/Quartz.pdb b/packages/Quartz.2.0.1/lib/net40/Quartz.pdb new file mode 100644 index 0000000..5fee49e Binary files /dev/null and b/packages/Quartz.2.0.1/lib/net40/Quartz.pdb differ diff --git a/packages/Quartz.2.0.1/lib/net40/Quartz.xml b/packages/Quartz.2.0.1/lib/net40/Quartz.xml new file mode 100644 index 0000000..de320e2 --- /dev/null +++ b/packages/Quartz.2.0.1/lib/net40/Quartz.xml @@ -0,0 +1,20066 @@ + + + + Quartz + + + + + A wrapper for generic HashSet that brings a common interface. + + + + + + Represents a collection ob objects that contains no duplicate elements. + + Marko Lahma (.NET) + + + + A sorted set. + + Marko Lahma (.NET) + + + + 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. + + + + Returns the first item in the set. + + First object. + + + + Returns the object in the specified index. + + + + + + + Simple C5 wrapper for common interface. + + + + + + Default constructor. + + + + + Constructor that accepts comparer. + + Comparer to use. + + + + Constructor that prepolutates. + + + + + + Returns the first element. + + + + + + Return items from given range. + + + + + + + Indexer. + + + + + + + Only for backwards compatibility with serialization! + + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + 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) + + + + 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. + + Marko Lahma (.NET) + + + + + The interface to be implemented by classes that want to be informed of major + events. + + + + + James House + Marko Lahma (.NET) + + + + 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 a s has been paused. + + + + + Called by the a group of + s has been paused. + + + If a all groups were paused, then the parameter + will be null. + + The trigger group. + + + + Called by the when a + has been un-paused. + + + + + 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. + + + + Called by the when a + has been added. + + + + + + Called by the when a + has been deleted. + + + + + Called by the when a + has been paused. + + + + + 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. + + + + Called by the when a + has been un-paused. + + + + + 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 inform the listener + that it has move to standby mode. + + + + + Called by the to inform the listener + that it has started. + + + + + 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. + + + + + This interface should be implemented by any class whose instances are intended + to be executed by a thread. + + Marko Lahma (.NET) + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Create a JobRunShell instance with the given settings. + + The instance that should be made + available within the . + + + + + Initializes the job execution context with given scheduler and bundle. + + The scheduler. + + + + Requests the Shutdown. + + + + + This method has to be implemented in order that starting of the thread causes the object's + run method to be called in that separately executing thread. + + + + + Runs begin procedures on this instance. + + + + + Completes the execution. + + if set to true [successful execution]. + + + + Passivates this instance. + + + + + Completes the trigger retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Vetoeds the job retry loop. + + The trigger. + The job detail. + The inst code. + + + + + Default concrete implementation of . + + + + + 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. + + + + 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. + + + + + + + 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. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and removed. + + + + Get a List containing all of the s in + the. + + + + + Get the that has the given name. + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + Add the given to the, + and register it to receive events for Triggers that are matched by ANY of the + given Matchers. + + + If no matcher is provided, the will be used. + + + + + + + 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 + + + + 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 + + + + 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 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 + + + + Remove the identified from the. + + + + true if the identified listener was found in the list, and + removed. + + + + Get a List containing all of the s + in the. + + + + + 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. + + true if the Job was found and deleted. + + + + Remove the indicated from the + scheduler. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + the key of the trigger + 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. + + + + + Creates a new positive random number + + The last random obtained + Returns a new positive random number + + + + Trigger the identified (Execute it now) - with a non-volatile trigger. + + + + + Store and schedule the identified + + + + + + Pause the with the given name. + + + + + Pause all of the s in the given group. + + + + + 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. + + + + + Resume (un-pause) the with the given + name. + + 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 + matching groups. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + Gets the paused trigger groups. + + + + + + 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. + + + + + + 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 + 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 + on every group. + + 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 the names of all known + groups. + + + + + Get the names of all the s in + the matching groups. + + + + + Get the for the + instance with the given name and group. + + + + + Get the instance with the given name and + group. + + + + + 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. + + + + + Get the current state of the identified . + + + + + + Add (register) the given to the Scheduler. + + + + + Delete the identified from the Scheduler. + + true if the Calendar was found and deleted. + + + + Get the instance with the given name. + + + + + Get the names of all registered s. + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal + that has the given name. + + + + + + + Add the given to the + 's internal list. + + + + + + Remove the identified from the 's + list of internal listeners. + + + true if the identified listener was found in the list, and removed. + + + + Get the internal that + has the given name. + + + + + + + Notifies the job store job complete. + + 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. + + The jec. + The je. + + + + Notifies the scheduler listeners about scheduler error. + + The MSG. + The se. + + + + Notifies the scheduler listeners about job that was scheduled. + + The trigger. + + + + Notifies the scheduler listeners about job that was unscheduled. + + + + + Notifies the scheduler listeners about finalized trigger. + + The trigger. + + + + Notifies the scheduler listeners about paused trigger. + + The group. + + + + Notifies the scheduler listeners about paused trigger. + + + + + Notifies the scheduler listeners resumed trigger. + + The group. + + + + Notifies the scheduler listeners resumed trigger. + + + + + Notifies the scheduler listeners about paused job. + + + + + Notifies the scheduler listeners about paused job. + + The group. + + + + Notifies the scheduler listeners about resumed job. + + + + + Notifies the scheduler listeners about resumed job. + + The group. + + + + 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. + + + + + Gets the version of the Quartz Scheduler. + + The version. + + + + Gets the version major. + + The version major. + + + + Gets the version minor. + + The version minor. + + + + Gets the version iteration. + + The version iteration. + + + + Gets the scheduler signaler. + + The scheduler signaler. + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + Gets or sets a value indicating whether to signal on scheduling change. + + + true if schduler should signal on scheduling change; otherwise, false. + + + + + Reports whether the is paused. + + + + + Gets the job store class. + + The job store class. + + + + Gets the thread pool class. + + The thread pool class. + + + + Gets the size of the thread pool. + + The size of the thread pool. + + + + Reports whether the has been Shutdown. + + + + + 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 internal s + registered with the . + + + + + Gets or sets the job factory. + + The job factory. + + + + Gets the running since. + + The running since. + + + + Gets the number of jobs executed. + + The number of jobs executed. + + + + Gets a value indicating whether this scheduler supports persistence. + + true if supports persistence; otherwise, false. + + + + Get a List containing all of the s + in the 's internal list. + + + + + + Get a list containing all of the s + in the 's internal list. + + + + + Helper class to start scheduler in a delayed fashion. + + + + + ErrorLogger - Scheduler Listener Class + + + + + The interface to be implemented by classes that want to be informed when 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 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 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. + + + + + Get the name of the . + + + + + Contains all of the resources (,, + etc.) necessary to create a instance. + + + James House + Marko Lahma (.NET) + + + + Gets the unique identifier. + + Name of the scheduler. + The scheduler instance id. + + + + + Gets the unique identifier. + + + + + + Add the given for the + to use. This method expects the plugin's + "initialize" method to be invoked externally (either before or after + this method is called). + + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the instance Id for the . + + + if name is null or empty. + + + + + Get or set the name for the . + + + if name is null or empty. + + + + + Get or set the for the + to use. + + + if threadPool is null. + + + + + Get or set the for the + to use. + + + if jobStore is null. + + + + + Get or set the for the + to use. + + + if jobRunShellFactory is null. + + + + + Get the of all s for the + to use. + + + + + + Gets or sets a value indicating whether to make scheduler thread daemon. + + + true if scheduler should be thread daemon; otherwise, false. + + + + + Gets or sets the scheduler exporter. + + 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 + s that are registered with the . + + + + + James House + Marko Lahma (.NET) + + + + Support class used to handle threads + + Marko Lahma (.NET) + + + + The instance of System.Threading.Thread + + + + + Initializes a new instance of the QuartzThread class + + + + + Initializes a new instance of the Thread class. + + The name of the thread + + + + This method has no functionality unless the method is overridden + + + + + Causes the operating system to change the state of the current thread instance to ThreadState.Running + + + + + Interrupts a thread that is in the WaitSleepJoin thread state + + + + + Blocks the calling thread until a thread terminates + + + + + Obtain a string that represents the current object + + A string that represents the current object + + + + Gets or sets the name of the thread + + + + + Gets or sets a value indicating the scheduling priority of a thread + + + + + Gets or sets a value indicating whether or not a thread is a background thread. + + + + + Gets the randomized idle wait time. + + 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 + attributes. + + + + + Signals the main processing loop to pause at the next possible point. + + + + + 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 + waiting for the fire time to arrive. + + + the time when the newly scheduled trigger + will fire. If this method is being called do to some other even (rather + than scheduling a trigger), the caller should pass null. + + + + + The main processing loop of the . + + + + + Trigger retry loop that is executed on error condition. + + The bndle. + + + + Releases the trigger retry loop. + + The trigger. + + + + Gets the log. + + The log. + + + + Sets the idle wait time. + + The idle wait time. + + + + Gets a value indicating whether this is paused. + + true if paused; otherwise, false. + + + + Gets or sets the db failure retry interval. + + The db failure retry interval. + + + + An interface to be used by instances in order to + communicate signals back to the . + + James House + Marko Lahma (.NET) + + + + An interface to be used by instances in order to + 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. + + + + + 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 + + + + Initializes this instance. Parses information and initializes startup + values. + + + + + Gets the name of the parameter which includes the parameter prefix for this + database. + + Name of the parameter. + + + Gets or sets the name of the assembly that holds the connection library. + The name of the assembly. + + + + Gets or sets the name of the product. + + The name of the product. + + + + Gets or sets the type of the connection. + + The type of the connection. + + + + Gets or sets the type of the command. + + The type of the command. + + + + Gets or sets the type of the parameter. + + The type of the parameter. + + + + Gets the type of the command builder. + + The type of the command builder. + + + Gets the command builder's derive parameters method. + The command builder derive parameters method. + + + + Gets or sets the parameter name prefix. + + The parameter name prefix. + + + + Gets or sets the type of the exception that is thrown when using driver + library. + + The type of the exception. + + + + Gets or sets a value indicating whether parameters are bind by name when using + ADO.NET parameters. + + true if parameters are bind by name; otherwise, false. + + + Gets or sets the type of the database parameters. + The type of the parameter db. + + + + Gets the parameter db type property. + + The parameter db type property. + + + + Gets the parameter is nullable property. + + The parameter is nullable property. + + + + Gets or sets the type of the db binary column. This is a string representation of + Enum element because this information is database driver specific. + + The type of the db binary. + + + Gets the type of the db binary. + The type of the db binary. + + + + Sets the name of the parameter db type property. + + The name of the parameter db type property. + + + + Gets or sets a value indicating whether [use parameter name prefix in parameter collection]. + + + true if [use parameter name prefix in parameter collection]; otherwise, false. + + + + + 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. + + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + 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. + + + + + Registers DB metadata information for given provider name. + + + + + + + Initializes a new instance of the class. + + Name of the db provider. + The connection string. + + + + 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. + + A new Command Builder + In .NET 1.1 there was no common base class or interface + for command builders, hence the return signature is object to + be portable (but more loosely typed) across .NET 1.1/2.0 + + + + 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. + + + + + + Gets the metadata. + + The metadata. + + + + This interface can be implemented by any + class that needs to use the constants contained herein. + + Jeffrey Wescott + James House + Marko Lahma(.NET) + + + + Simple Trigger type. + + + + + Cron Trigger type. + + + + + Calendar Interval Trigger type. + + + + + Daily Time Interval Trigger type. + + + + + 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 + + + + Common helper methods for working with ADO.NET. + + 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) + + + + + + + + + + Base class for database based lock handlers for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + same time. + + Marko Lahma (.NET) + + + + This class extends + to include the query string constants in use by the + class. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + An interface for providing thread/resource locking in order to protect + resources from being altered by multiple threads at the same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + 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 scheduler name + The SQL. + The default SQL. + The db provider. + + + + Execute the SQL that will lock the proper database row. + + + + + + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + + + + true if the lock was obtained. + + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + + + + Gets or sets the lock owners. + + The lock owners. + + + + Gets the log. + + The log. + + + + This Semaphore implementation does use the database. + + + + + Gets or sets the table prefix. + + The table prefix. + + + + Initialization argumens holder for implementations. + + + + + 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. + + 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 + state. + + 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 + + + + 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 + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + 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. + + The DB Connection + Name of the group. + The state. + The timestamp. + An array of objects + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection + The number of rows deleted + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Insert the job detail record. + + The DB Connection + The job to insert. + Number of rows inserted. + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + + + + Delete the job detail record for the given job. + + The DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + Check whether or not the given job exists. + + The DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The DB Connection + The job. + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection + The key identifying the job. + The class load helper. + The populated JobDetail object + + + + Select the total number of jobs stored. + + The DB Connection + the total number of jobs stored + + + + Select all of the job group names that are stored. + + The DB Connection. + an array of group names + + + + Select all of the jobs contained in a given group. + + The DB Connection + + an array of job names + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection + The trigger to insert + The number of rows inserted + + + + Update the base trigger data. + + the DB Connection + The trigger. + The state. + The job detail. + the number of rows updated + + + + Update the blob trigger data. + + the DB Connection + The trigger. + the number of rows updated + + + + Check whether or not a trigger exists. + + the DB Connection + The key identifying the trigger. + the number of rows updated + + + + Update the state for a given trigger. + + The DB Connection + 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 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 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 + One of the old state the trigger must be in + + int the number of rows updated + + SQLException + + + + 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 + + + + 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 + + + + Update the states of all triggers associated with the given job. + + The DB Connection + 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 key identifying the job. + The new state for the triggers + The old state of the triggers + the number of rows updated + + + + Delete the BLOB trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + The number of rows deleted + + + + Delete the base trigger data for a trigger. + + The DB Connection + The key identifying the trigger. + the number of rows deleted + + + + Select the number of triggers associated with a given job. + + The DB Connection + 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 key identifying the trigger. + The load helper. + + The object associated with the given trigger + + + + + Select the triggers for a job> + + The DB Connection + The key identifying the job. + an array of objects associated with a given job. + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + The DB Connection. + The key identifying the trigger. + The object. + + + + + Select a trigger's JobDataMap. + + The DB Connection. + The key identifying the trigger. + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + The DB Connection. + The key identifying the trigger. + The object. + + + + Select a triggers status (state and next fire time). + + The DB Connection. + The key identifying the trigger. + A object, or null + + + + Select the total number of triggers stored. + + The DB Connection. + The total number of triggers stored. + + + + Select all of the trigger group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the triggers contained in a given group. + + The DB Connection. + + An array of trigger names. + + + + Select all of the triggers in a given state. + + The DB Connection. + The state the triggers must be in. + An array of trigger s. + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows inserted. + + + + Update a calendar. + + The DB Connection. + The name for the new calendar. + The calendar. + The number of rows updated. + + + + Check whether or not a calendar exists. + + The DB Connection. + The name of the calendar. + true if the trigger exists, false otherwise. + + + + Select a calendar. + + The DB Connection. + The name of the calendar. + The Calendar. + + + + 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 + + + + Delete a calendar. + + The DB Connection + The name of the trigger. + The number of rows deleted. + + + + Select the total number of calendars stored. + + The DB Connection + The total number of calendars stored. + + + + Select all of the stored calendars. + + 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 + 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. + + The DB Connection + The trigger. + The state that the trigger should be stored in. + The job detail. + The number of rows inserted. + + + + 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 FiredTriggerRecord objects. + + + + 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 FiredTriggerRecord objects. + + + + 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. + + + + Delete a fired trigger. + + The DB Connection + The fired trigger entry to delete. + The number of rows deleted. + + + + Get the number instances of the identified job currently executing. + + The DB Connection + The key identifying the job. + + The number instances of the identified job currently executing. + + + + + Insert a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The interval. + The number of inserted rows. + + + + Delete a scheduler-instance state record. + + The DB Connection + The instance id. + The number of deleted rows. + + + + Update a scheduler-instance state record. + + The DB Connection + The instance id. + The check in time. + The number of updated rows. + + + + 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) + 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. + + + + Select the distinct instance names of all fired-trigger records. + + + This is useful when trying to identify orphaned fired triggers (a + fired trigger without a scheduler state record.) + + The conn. + + + + + Counts the misfired triggers in states. + + The conn. + The state1. + The ts. + + + + + Selects the misfired triggers in states. + + The conn. + The state1. + The ts. + The count. + The result list. + + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + Exception class for when a driver delegate cannot be found for a given + configuration, or lack thereof. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + Base class for exceptions thrown by the Quartz . + + + SchedulerExceptions may contain a reference to another + , which was the underlying cause of the SchedulerException. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The MSG. + + + + 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. + + The cause. + + + + Initializes a new instance of the class. + + The MSG. + The cause. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + 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 + Marko Lahma (.NET) + + + + Contains base functionality for ADO.NET-based JobStore implementations. + + Jeffrey Wescott + James House + Marko Lahma (.NET) + + + + The interface to be implemented by classes that want to provide a + and storage mechanism for the + 's use. + + + Storage of s and s should be keyed + on the combination of their name and group for uniqueness. + + + + + + + + James House + Marko Lahma (.NET) + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Store the given and . + + The to be stored. + The to be stored. + ObjectAlreadyExistsException + + + + returns true if the given JobGroup is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + Store the given . + + 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 + key, and any s that reference + it. + + + 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. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Store the given . + + 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 key. + + + + 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. + + + + + Remove (delete) the with the + given name, and store the new given one - which must be associated + with the same job. + + The to be replaced. + The new to be stored. + + if a with the given + name and group was found and removed from the store. + + + + + Retrieve the given . + + + 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. + + + + the identifier to check for + true if a trigger exists with the given identifier + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Store the given . + + 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. + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + + 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. + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + + + + 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 names of all of the + groups. + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + + 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 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 ). + + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Get the current state of the identified . + + + + + + Pause the with the given key. + + + + + 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 key - by + pausing all of its current 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 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 the given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + + 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). + + + 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. + + + + + 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. + + + + + Indicates whether job store supports persistence. + + + + + + How long (in milliseconds) the implementation + estimates that it will take to release a trigger and acquire a new one. + + + + + Whether or not the implementation is clustered. + + + + + + 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. + + + + + Tells the JobStore the pool size used to execute jobs. + + + + + Initializes a new instance of the class. + + + + + Gets the connection and starts a new transaction. + + + + + + Called by the QuartzScheduler before the is + used, in order to give it a chance to Initialize. + + + + + + + + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Will recover any failed or misfired jobs and clean up the data store as + appropriate. + + + + + Store the given and . + + Job to be stored. + Trigger to be stored. + + + + returns true if the given JobGroup + is paused + + + + + + + returns true if the given TriggerGroup + is paused + + + + + + + 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. + + + + + Store the given . + + 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. + + + + + Insert or update a trigger. + + + + + Check existence of a given trigger. + + + + + Remove (delete) the with the given + name, and any s that reference + it. + + + + 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. + + + + + Delete a job and its listeners. + + + + + + + Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry. + + + + + + + + Retrieve the for the given + . + + The key identifying the job. + 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 key identifying the trigger. + + if a with the given + name & group was found and removed from the store. + + + + + + + + Retrieve the given . + + The key identifying the trigger. + The desired , or null if there is no match. + + + + Get the current state of the identified . + + + + + + + + + + Gets the state of the trigger. + + The conn. + The key identifying the trigger. + + + + + Store the given . + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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. + + + If there are no jobs in the given group name, the result should be a + zero-length array (not ). + + + + + 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 + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + 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 names of all of the + groups. + + + + If there are no known group names, the result should be a zero-length + array (not ). + + + + + 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 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 ). + + + + + Get all of the Triggers that are associated to the given Job. + + + If there are no matches, a zero-length array should be returned. + + + + + Pause the with the given name. + + + + + Pause the with the given name. + + + + + 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. + + + + + + Determines if a Trigger for the given job should be blocked. + State can only transition to StatePausedBlocked/StateBlocked from + StatePaused/StateWaiting respectively. + + StatePausedBlocked, StateBlocked, or the currentState. + + + + Resume (un-pause) the with the + given name. + + + If the missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + 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. + + + + + + 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. + + + + + + Pause all of the s in the given group. + + + + + + Pause all of the s in the given group. + + + + + Pause all of the s in the + given group. + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + + 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. + + + + + + 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. + + + + + + + Get a handle to the next N triggers to be fired, and mark them as 'reserved' + by the calling scheduler. + + + + + + Inform the that the scheduler no longer plans to + fire the given , that it had previously acquired + (reserved). + + + + + 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. + + + + + 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. + + + + + Create dummy objects for fired triggers + that have no scheduler state record. Checkin timestamp and interval are + left as zero on these dummy objects. + + + List of all current s + + + + Cleanup the given database connection. This means restoring + any modified auto commit or transaction isolation connection + attributes, and then closing the underlying connection. + + + + 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. + + + + + + Closes the supplied connection. + + (Optional) + + + + Rollback the supplied connection. + + (Optional) + + JobPersistenceException thrown if a SQLException occurs when the + connection is rolled back + + + + + Commit the supplied connection. + + The CTH. + if set to true opens a new transaction. + JobPersistenceException thrown if a SQLException occurs when the + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + Execute the given callback having optionally acquired the given lock. + This uses the non-managed transaction connection. + + + 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. + + + + + Get or set the datasource name. + + + + + Gets the log. + + The log. + + + + Get or sets the prefix that should be pre-pended to all table names. + + + + + Set whether string-only properties will be handled in JobDataMaps. + + + + + Get or set the instance Id of the Scheduler (must be unique within a cluster). + + + + + Get or set the instance Id of the Scheduler (must be unique within this server instance). + + + + + Get or set whether this instance is part of a cluster. + + + + + 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. + + + + + 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. + + + + + Gets or sets the database retry interval. + + The db retry interval. + + + + Get or set whether this instance should use database-based thread + synchronization. + + + + + 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. + + + Setting this property to will provide a + significant performance increase during the addition of new jobs + and triggers. + + + + + 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. + + + + + 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. + + + + + Set the transaction isolation level of DB connections to sequential. + + + + + 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. + + + However, if batch acquisition is used, it is important for this behavior + to be used for all dbs. + + + + + Get or set the ADO.NET driver delegate class name. + + + + + The driver delegate's initialization string. + + + + + set the SQL statement to use to select and lock a row in the "locks" + table. + + + + + + Get whether the threads spawned by this JobStore should be + marked as daemon. Possible threads include the + and the . + + + + + + 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. + + + + + + Get the driver delegate for DB operations. + + + + + Get whether String-only properties will be handled in JobDataMaps. + + + + + Indicates whether this job store supports persistence. + + + + + + + An interface for classes wishing to provide the service of loading classes + and resources within the scheduler... + + James House + Marko Lahma (.NET) + + + + 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 + + + + + Helper class for returning the composite result of trying + to recover misfired jobs. + + + + + Initializes a new instance of the class. + + if set to true [has more misfired triggers]. + The processed misfired trigger count. + + + + + Gets a value indicating whether this instance has more misfired triggers. + + + true if this instance has more misfired triggers; otherwise, false. + + + + + Gets the processed misfired trigger count. + + The processed misfired trigger count. + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + + + 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 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. + + + + 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) + + + + 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 + Marko Lahma (.NET) + + + + An exception that is thrown to indicate that there has been a failure in the + scheduler's underlying persistence mechanism. + + James House + Marko Lahma (.NET) + + + + 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 cause. + + + + + + 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 + + + + 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) + + + + Initializes the driver delegate. + + + + + 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 + + + + Get the names of all of the triggers that have misfired. + + the DB Connection + The ts. + an array of objects + + + + Select all of the triggers in a given state. + + The DB Connection + The state the triggers must be in + an array of trigger s + + + + Get the names of all of the triggers in the given state that have + misfired - according to the given timestamp. + + The DB Connection + The state. + The time stamp. + An array of objects + + + + 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. + + + + Get the number of triggers in the given state that have + misfired - according to the given timestamp. + + + + + + + + + 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 + + + + 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. + + + 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 + + + + Delete all fired triggers. + + The DB Connection. + The number of rows deleted. + + + + Delete all fired triggers of the given instance. + + The DB Connection + The instance id. + The number of rows deleted + + + + Clear (delete!) all scheduling data - all s, s + s. + + + + + + + Insert the job detail record. + + The DB Connection. + The job to insert. + Number of rows inserted. + + + + 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. + + + + + Update the job detail record. + + The DB Connection. + 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 key identifying the job. + An array of objects + + + + Delete the job detail record for the given job. + + the DB Connection + The key identifying the job. + the number of rows deleted + + + + 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 + + + + + Check whether or not the given job exists. + + the DB Connection + The key identifying the job. + true if the job exists, false otherwise + + + + Update the job data map for the given job. + + The conn. + the job to update + the number of rows updated + + + + Select the JobDetail object for a given job name / group name. + + The DB Connection. + The key identifying the job. + The load helper. + The populated JobDetail object. + + + build Map from java.util.Properties encoding. + + + + Select the total number of jobs stored. + + The DB Connection. + The total number of jobs stored. + + + + Select all of the job group names that are stored. + + The DB Connection. + An array of group names. + + + + Select all of the jobs contained in a given group. + + The DB Connection. + + An array of job names. + + + + 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 + + + + Insert the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows inserted. + + + + 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. + + + + Update the blob trigger data. + + The DB Connection. + The trigger to insert. + The number of rows updated. + + + + Check whether or not a trigger exists. + + The DB Connection. + the key of the trigger + true if the trigger exists, false otherwise + + + + Update the state for a given trigger. + + The DB Connection. + the key of 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. + + 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. + + + + 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. + + + + 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 + + + + 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 + + + + 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 + + + + Updates the state of the trigger states for job from other. + + The conn. + Key of the job. + The state. + The old state. + + + + + Delete the cron trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + Delete the base trigger data for a trigger. + + the DB Connection + the key of the trigger + the number of rows deleted + + + + 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 + + + + 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 + + + + Select the triggers for a job + + the DB Connection + the key of the job + + an array of objects + associated with a given job. + + + + + Select the triggers for a calendar + + The DB Connection. + Name of the calendar. + + An array of objects associated with a given job. + + + + + Select a trigger. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger's JobDataMap. + + the DB Connection + the key of the trigger + The of the Trigger, never null, but possibly empty. + + + + Select a trigger's state value. + + the DB Connection + the key of the trigger + The object + + + + Select a trigger status (state and next fire time). + + the DB Connection + the key of the trigger + + a object, or null + + + + + Select the total number of triggers stored. + + the DB Connection + the total number of triggers stored + + + + Select all of the trigger group names that are stored. + + the DB Connection + + an array of group names + + + + + Select all of the triggers contained in a given group. + + the DB Connection + + + an array of trigger names + + + + + Inserts the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes the paused trigger group. + + The conn. + Name of the group. + + + + + Deletes all paused trigger groups. + + The conn. + + + + + Determines whether the specified trigger group is paused. + + The conn. + Name of the group. + + true if trigger group is paused; otherwise, false. + + + + + Determines whether given trigger group already exists. + + The conn. + Name of the group. + + true if trigger group exists; otherwise, false. + + + + + Insert a new calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows inserted + IOException + + + + Update a calendar. + + the DB Connection + The name for the new calendar. + The calendar. + the number of rows updated + IOException + + + + Check whether or not a calendar exists. + + the DB Connection + The name of the calendar. + + true if the trigger exists, false otherwise + + + + + Select a calendar. + + the DB Connection + The name of the calendar. + the Calendar + ClassNotFoundException + IOException + + + + 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 + + + + + Delete a calendar. + + the DB Connection + The name of the trigger. + the number of rows deleted + + + + Select the total number of calendars stored. + + the DB Connection + the total number of calendars stored + + + + Select all of the stored calendars. + + 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 + trigger that will be fired at the given fire time, or null if no + trigger will be fired at that time + + + + + 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. + + + + 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 + + + + + Update a fired trigger. + + + + + + the DB Connection + + the trigger + + + the state that the trigger should be stored in + the number of rows inserted + + + + 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. + + + + 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. + + + + 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. + + + + 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.) + + + + + Delete a fired trigger. + + the DB Connection + the fired trigger entry to delete + the number of rows deleted + + + + Selects the job execution count. + + The DB connection. + The key of the job. + + + + + Inserts the state of the scheduler. + + The conn. + The instance id. + The check in time. + The interval. + + + + + Deletes the state of the scheduler. + + The database connection. + The instance id. + + + + + Updates the state of the scheduler. + + The database connection. + The instance id. + The check in time. + + + + + 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. + + + + + Replace the table prefix in a query by replacing any occurrences of + "{0}" with the table prefix. + + The unsubstitued query + The query, with proper table prefix substituted + + + + Create a serialized version of an Object. + + 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. + + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs. The default implementation uses standard + ADO.NET operations. + + The data reader, already queued to the correct row. + The column index for the BLOB. + The deserialized object from the DataReader BLOB. + + + + This method should be overridden by any delegate subclasses that need + special handling for BLOBs for job details. + + The result set, already queued to the correct row. + The column index for the BLOB. + The deserialized Object from the ResultSet BLOB. + + + + Selects the paused trigger groups. + + The DB Connection. + + + + + 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) + + + + 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 Oracle database. + + Marko Lahma + + + + Creates the SQL for select next trigger to acquire. + + + + + Gets the db presentation for boolean value. For Oracle we use true/false of "1"/"0". + + Value to map to database. + + + + + Conveys a scheduler-instance state record. + + James House + Marko Lahma (.NET) + + + + Gets or sets the checkin interval. + + The checkin interval. + + + + Gets or sets the checkin timestamp. + + The checkin timestamp. + + + + Gets or sets the scheduler instance id. + + The scheduler instance id. + + + + Internal in-memory lock handler for providing thread/resource locking in + order to protect resources from being altered by multiple threads at the + same time. + + James House + Marko Lahma (.NET) + + + + Grants a lock on the identified resource to the calling thread (blocking + until it is available). + + True if the lock was obtained. + + + Release the lock on the identified resource if it is held by the calling + thread. + + + + + Determine whether the calling thread owns a lock on the identified + resource. + + + + + Gets the thread locks. + + The thread locks. + + + + Whether this Semaphore implementation requires a database connection for + its lock management operations. + + + + + + + + + This is a driver delegate for the SQLiteDelegate ADO.NET driver. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQLite version with LIMIT support. + + + + + + A SQL Server specific driver delegate. + + Marko Lahma + + + + Gets the select next trigger to acquire SQL clause. + SQL Server specific version with TOP functionality + + + + + + Internal database based lock handler for providing thread/resource locking + in order to protect resources from being altered by multiple threads at the + 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. + + + + + + Provide thread/resource locking in order to protect + resources from being altered by multiple threads at the same time using + a db row update. + + + + Note: This Semaphore implementation is useful for databases that do + 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. + + + + + + + + + This implementation of the Calendar excludes a set of days of the year. You + may use it to exclude bank holidays which are on the same date every year. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + This implementation of the Calendar may be used (you don't have to) as a + base class for more sophisticated one's. It merely implements the base + functionality required by each Calendar. + + + Regarded as base functionality is the treatment of base calendars. Base + calendar allow you to chain (stack) as much calendars as you may need. For + example to exclude weekends you may use WeeklyCalendar. In order to exclude + holidays as well you may define a WeeklyCalendar instance to be the base + calendar for HolidayCalendar instance. + + + Juergen Donnerstag + James House + Marko Lahma (.NET) + + + + 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. + + + 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. + + + + + 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. + + + + + Set a new base calendar or remove the existing one. + Get the base calendar. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Initializes a new instance of the class. + + The time zone. + + + + Initializes a new instance of the class. + + The base calendar. + The time zone. + + + + Serialization constructor. + + + + + + + checks whether two arrays have + the same length and + for any given place there are equal elements + in both arrays + + + + + + 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. + + + + Gets or sets the time zone. + + The time zone. + + + + Gets or sets the description given to the instance by + its creator (if any). + + + + + Set a new base calendar or remove the existing one + + + + + + Constructor + + + + + Constructor + + 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. + + + + + + Get or the array which defines the exclude-value of each day of month. + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes the set of times expressed by a + given CronExpression. + + + 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 + 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 + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + Create a with the given cron expression and + . + + + the base calendar for this calendar instance + see BaseCalendar for more information on base + calendar functionality + + a string representation of the desired cron expression + + + + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + 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 + 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. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the cron expression for the calendar to a new value. + + The expression. + + + + Returns the object representation of the cron expression that defines the + dates and times this calendar excludes. + + + + + This implementation of the Calendar excludes (or includes - see below) a + specified time range each day. + + + For example, you could use this calendar to + exclude business hours (8AM - 5PM) every day. Each + only allows a single time range to be specified, and that time range may not + * cross daily boundaries (i.e. you cannot specify a time range from 8PM - 5AM). + If the property is (default), + the time range defines a range of times in which triggers are not allowed to + * 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) + + + + Create a with a time range defined by the + specified strings and no baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • items enclosed in brackets ('[', ']') are optional.
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+
+ + + Create a with a time range defined by the + specified strings and the specified baseCalendar. + and + must be in the format "HH:MM[:SS[:mmm]]" where: +
    +
  • + HH is the hour of the specified time. The hour should be + specified using military (24-hour) time and must be in the range + 0 to 23. +
  • +
  • + MM is the minute of the specified time and must be in the range + 0 to 59. +
  • +
  • + SS is the second of the specified time and must be in the range + 0 to 59. +
  • +
  • + mmm is the millisecond of the specified time and must be in the + range 0 to 999. +
  • +
  • + items enclosed in brackets ('[', ']') are optional. +
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The base calendar for this calendar instance see BaseCalendar for more + information on base calendar functionality. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. Values are subject to + the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified values and the specified . Values are + subject to the following validations: +
    +
  • + Hours must be in the range 0-23 and are expressed using military + (24-hour) time. +
  • +
  • Minutes must be in the range 0-59
  • +
  • Seconds must be in the range 0-59
  • +
  • Milliseconds must be in the range 0-999
  • +
  • + The time range starting time must be before the time range ending + time. Note this means that a time range may not cross daily + boundaries (10PM - 2AM) +
  • +
+
+ The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. +
+ + + Create a with a time range defined by the + specified s and no + baseCalendar. The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendar.after(rangeEndingCalendar) == true) + +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified s and the specified + . The Calendars are subject to the following + considerations: +
    +
  • + Only the time-of-day fields of the specified Calendars will be + used (the date fields will be ignored) +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time fields are + are used, it is possible for two Calendars to represent a valid + time range and + rangeStartingCalendarUtc > rangeEndingCalendarUtc == true) +
  • +
+
+ The range starting calendar. + The range ending calendar. +
+ + + Create a with a time range defined by the + specified values and no baseCalendar. The values are + subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Create a with a time range defined by the + specified values and the specified . The values + are subject to the following considerations: +
    +
  • + Only the time-of-day portion of the specified values will be + used +
  • +
  • + The starting time must be before the ending time of the defined + time range. Note this means that a time range may not cross + daily boundaries (10PM - 2AM). (because only time value are + are used, it is possible for the two values to represent a valid + time range and rangeStartingTime > rangeEndingTime) +
  • +
+
+ The range starting time in millis. + The range ending time in millis. +
+ + + Serialization constructor. + + + + + + + Determine whether the given time is 'included' by the + Calendar. + + + + + + + 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 0 if all days are excluded. + + + + + + + + Returns the start time of the time range of the day + specified in . + + + a DateTime representing the start time of the + time range for the specified date. + + + + + Returns the end time of the time range of the day + specified in + + + A DateTime representing the end time of the + time range for the specified date. + + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Sets the time range for the to the times + represented in the specified Strings. + + The range starting time string. + The range ending time string. + + + + Sets the time range for the to the times + represented in the specified values. + + The range starting hour of day. + The range starting minute. + The range starting second. + The range starting millis. + The range ending hour of day. + The range ending minute. + The range ending second. + The range ending millis. + + + + Sets the time range for the to the times + represented in the specified s. + + The range starting calendar. + The range ending calendar. + + + + Sets the time range for the to the times + represented in the specified values. + + 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. + + The time. + + + + + Checks the specified values for validity as a set of time values. + + The hour of day. + The minute. + The second. + The millis. + + + + Indicates whether the time range represents an inverted time range (see + class description). + + true if invert time range; otherwise, false. + + + + This implementation of the Calendar stores a list of holidays (full days + that are excluded from scheduling). + + + The implementation DOES take the year into consideration, so if you want to + exclude July 4th for the next 10 years, you need to add 10 entries to the + exclude list. + + Sharada Jambula + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + 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. + + + + Add the given Date to the list of excluded days. Only the month, day and + year of the returned dates are significant. + + + + + Removes the excluded date. + + The date to remove. + + + + Returns a of Dates representing the excluded + days. Only the month, day and year of the returned dates are + significant. + + + + + This implementation of the Calendar excludes a set of days of the month. You + may use it to exclude every 1. of each month for example. But you may define + any day of a month. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Constructor + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if mday is defined to be exluded. + + + + + Redefine a certain day of the month to be excluded (true) or included + (false). + + + + + Check if all days are excluded. That is no day is included. + + 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. + + + + Get or set the array which defines the exclude-value of each day of month + Setting will redefine the array of days excluded. The array must of size greater or + equal 31. + + + + + This implementation of the Calendar excludes a set of days of the week. You + may use it to exclude weekends for example. But you may define any day of + the week. + + + + Juergen Donnerstag + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base calendar. + + + + Serialization constructor. + + + + + + + Initialize internal variables + + + + + Return true, if wday is defined to be exluded. E. g. + saturday and sunday. + + + + + Redefine a certain day of the week to be excluded (true) or included + (false). Use enum to determine the weekday. + + + + + 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. + + + + + + Get the array with the week days. + Setting will redefine the array of days excluded. The array must of size greater or + equal 8. java.util.Calendar's constants like MONDAY should be used as + index. A value of true is regarded as: exclude it. + + + + + Matches using an AND operator on two Matcher operands. + + James House + Marko Lahma (.NET) + + + + Matchers can be used in various API methods to + select the entities that should be operated upon. + + James House + + + + + Create an AndMatcher that depends upon the result of both of the given matchers. + + + + + + + + + Matches on the complete key being equal (both name and group). + + + + jhouse + + + + Create an EverythingMatcher that matches all jobs. + + + + + + Create an EverythingMatcher that matches all triggers. + + + + + + Matches on group (ignores name) property of Keys. + + James House + Marko Lahma (.NET) + + + + An abstract base class for some types of matchers. + + James House + Marko Lahma (.NET) + + + + Create a GroupMatcher that matches groups equaling the given string. + + + + + + + Create a GroupMatcher that matches groups starting with the given string. + + + + + + + Create a GroupMatcher that matches groups ending with the given string. + + + + + + + Create a GroupMatcher that matches groups containing the given string. + + + + + + + Matches on the complete key being equal (both name and group). + + James House + Marko Lahma (.NET) + + + + Create a KeyMatcher that matches Keys that equal the given key. + + + + + + + + Matches on name (ignores group) property of Keys. + + James House + Marko Lahma (.NET) + + + + Create a NameMatcher that matches names equaling the given string. + + + + + + + Create a NameMatcher that matches names starting with the given string. + + + + + + + Create a NameMatcher that matches names ending with the given string. + + + + + + + Create a NameMatcher that matches names containing the given string. + + + + + + + Matches using an NOT operator on another Matcher. + + James House + Marko Lahma (.NET) + + + + Create a NotMatcher that reverses the result of the given matcher. + + + + + + + + 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. + + + + + + + + + Operators available for comparing string values. + + + + + The base abstract class to be extended by all triggers. + + + + 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 + Marko Lahma (.NET) + + + + Internal interface for managing triggers. This interface should not be used by the Quartz client. + + + + + Should not be used by end users. + + + + + The base interface with properties common to all s - + use to instantiate an actual Trigger. + + + + 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) + + + + Get a that is configured to produce a + schedule identical to this trigger's schedule. + + + + + + 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. + + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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 . + + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + 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. + + + + + Associate the with the given name with this Trigger. + + + + + Set the to be associated with the + . + + + + + 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. + + + + + + + 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; } + + + + + + Set the time at which the should quit repeating - + regardless of any remaining repeats (based on the trigger's particular + repeat settings). + + + + + + + + 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 not explicitly set, the default value is . + + + + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + 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. + + + + + Returns the previous time at which the fired. + If the trigger has not yet fired, will be returned. + + + + + 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 + . + + + + + 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. + + + + 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. + + + + 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. + + + + + 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). + + + + + + 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 ). + + + + + This method should not be used by the Quartz client. + + + 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 . + + + + + + 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 next time at which the will fire, + after the given time. If the trigger will not fire after the given time, + will be returned. + + + + + 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. + + + + + + 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). + + + + + + + + Validates whether the properties of the are + valid for submission into a . + + + + + Return a simple string representation of this object. + + + + + 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. + + + + + + + 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. + + + + + Trigger equality is based upon the equality of the TriggerKey. + + + true if the key of this Trigger equals that of the given Trigger + + + + 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 . + + + + + Creates a new object that is a copy of the current instance. + + + 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. + + + if group is an empty string. + + + + + 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. + + + + + Returns the 'full name' of the in the format + "group.name". + + + + + Gets the key. + + The key. + + + + Returns the 'full name' of the that the + points to, in the format "group.name". + + + + + Get or set the description given to the instance by + its creator (if any). + + + + + Get or set the with the given name with + this Trigger. Use when setting to dis-associate a Calendar. + + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + 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. + + + + + + + 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. + + + + + 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) + + + + A that is used to fire a + based upon repeating calendar time intervals. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + Get the number of times the has already fired. + + + + + Gets the time zone within which time calculations related to this trigger will be performed. + + + If null, the system default TimeZone will be used. + + + + + 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). + + + + + + Create a with no settings. + + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + 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. + + + + Validates the misfire instruction. + + The misfire instruction. + + + + + 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
  • +
+
+
+ + + 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). + + + + + + + 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). + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + + Get the time at which the should occur. + + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + Get the time at which the should quit + repeating. + + + + + Get or set the interval unit - the time unit on with the interval applies. + + + + + 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. + + + + + 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). + + + + + + Get 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. + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + 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' . + + + + + 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 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' . + + + + + 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. + + + + + SchedulerException + + + + 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. + + + + + + + + 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 + preventing garbage collection, and allowing 'global' lookups. + + James House + Marko Lahma (.NET) + + + + Binds the specified sched. + + The sched. + + + + Removes the specified sched name. + + Name of the sched. + + + + + Lookups the specified sched name. + + Name of the sched. + + + + + Lookups all. + + + + + + Gets the singleton instance. + + The instance. + + + + Responsible for creating the instances of + to be used within the instance. + + 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. + + + + + Called by the to obtain instances of + . + + + + + An implementation of the interface that directly + proxies all method calls to the equivalent call on a given + instance. + + + + James House + Marko Lahma (.NET) + + + + 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' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Construct a instance to proxy the given + 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 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' . + + + + + 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. + UnableToInterruptJobException if the job does not implement + + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the of the . + + + + + 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. + + + + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + Calls the equivalent method on the 'proxied' . + + + + + + + + + An implementation of that + does all of it's work of creating a instance + 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 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 + file will be set on the instance by calling an equivalent 'set' method. For + example if the properties file contains the property 'quartz.jobStore. + myProp = 10' then after the JobStore class has been instantiated, the property + '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. + + + + + Initializes a new instance of the class. + + The props. + + + + 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 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. + + + + + Creates a new name value collection and overrides its values + with system values (environment variables). + + The base properties to override. + A new NameValueCollection instance. + + + + Initialize the with + 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 + will be called by this method. + + + + + Returns a handle to the Scheduler with the given name, if it exists (if + it has already been instantiated). + + + + + + Returns a handle to all known Schedulers (made by any + StdSchedulerFactory instance.). + + + + + + 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) + + + + + The interface to be implemented by classes which represent a 'job' to be + performed. + + + Instances of this interface must have a + 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 + 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. + + + 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 + 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. + + + + + + Gets the last modified date. + + Name of the file. + + + + + Gets the log. + + 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) + + + + + Ïnforms that certain file has been updated. + + Name of the file. + + + + 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) + + + + Required parameter that specifies the name of the command (executable) + to be ran. + + + + + Optional parameter that specifies the parameters to be passed to the + executed command. + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the job should wait for the execution of the native process to + complete before it completes. + + Defaults to . + + + + + Optional parameter (value should be 'true' or 'false') that specifies + whether the spawned process's stdout and stderr streams should be + consumed. If the process creates output, it is possible that it might + 'hang' if the streams are not consumed. + + Defaults to . + + + + + Optional parameter that specifies the workling directory to be used by + the executed command. + + + + + Initializes a new instance of the class. + + + + + 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. + + + + + + + Gets the log. + + The log. + + + + Consumes data from the given input stream until EOF and prints the data to stdout + + cooste + James House + + + + Initializes a new instance of the class. + + The enclosing instance. + The input stream. + The type. + + + + Runs this object as a separate thread, printing the contents of the input stream + supplied during instantiation, to either Console. or stderr + + + + + An implementation of Job, that does absolutely nothing - useful for system + which only wish to use s + and s, rather than writing + Jobs that perform work. + + James House + Marko Lahma (.NET) + + + + Do nothing. + + + + + A Job which sends an e-mail with the configured content to the configured + recipient. + + James House + Marko Lahma (.NET) + + + The host name of the smtp server. REQUIRED. + + + The e-mail address to send the mail to. REQUIRED. + + + The e-mail address to cc the mail to. Optional. + + + The e-mail address to claim the mail is from. REQUIRED. + + + The e-mail address the message should say to reply to. Optional. + + + The subject to place on the e-mail. REQUIRED. + + + 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 + events to them (in order). + + + This 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 + 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 TriggerListener 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) + + + + The interface to be implemented by classes that want to be informed when 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 + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + + The that will be passed to the 's method. + + + + + 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. 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 + 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. + + + + 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. + + + + + 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. + + + + the name of this instance + the initial List of TriggerListeners to broadcast to. + + + + Keeps a collection of mappings of which Job to trigger after the completion + of a given job. If this listener is notified of a job completing that has a + mapping, then it will then attempt to trigger the follow-up job. This + 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) + + + + + Initializes a new instance of the class. + + + + + 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 + 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. + + + + + + + Get the for this class's category. + This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Construct an instance with the given name. + + 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 JobKey with the name and group of the first job + a JobKey with the name and group of the follow-up job + + + + 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) + + + + + Get the for this + class's category. This should be used by subclasses for logging. + + + + + Get the name of the . + + + + + + Logs a history of all job executions (and execution vetos) via common + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8ObjectThe string value (toString() having been called) of the result (if any) + that the Job set on the JobExecutionContext, with on it. "NULL" if no + result was set.
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
8StringThe message from the thrown JobExecution Exception. +
+ 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Job's Name.
1StringThe Job's Group.
2DateThe current time.
3StringThe Trigger's name.
4StringThe Triggers's group.
5DateThe scheduled fire time.
6DateThe next scheduled fire time.
7IntegerThe re-fire count from the JobExecutionContext.
+ 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) +
+ + + Provides an interface for a class to become a "plugin" to Quartz. + + + Plugins can do virtually anything you wish, though the most interesting ones + 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) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + 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. + + + The scheduler to which the plugin is registered. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + 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 when a + was about to be executed (an associated + has occured), but a vetoed it's + execution. + + + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or sets the message that is logged when a Job successfully completes its + execution. + + + + + Get or sets the message that is logged when a Job fails its + execution. + + + + + Gets or sets the message that is logged when a Job is about to Execute. + + + + + Gets or sets the message that is logged when a Job execution is vetoed by a + trigger listener. + + + + + Get the name of the . + + + + + + Logs a history of all trigger firings via the Jakarta Commons-Logging + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe actual fire time. (the time the misfire was detected/handled)
5StringThe Job's name.
6StringThe Job's group.
+ + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementData TypeDescription
0StringThe Trigger's Name.
1StringThe Trigger's Group.
2DateThe scheduled fire time.
3DateThe next scheduled fire time.
4DateThe job completion time.
5StringThe Job's name.
6StringThe Job's group.
7IntegerThe re-fire count from the JobExecutionContext.
8IntegerThe trigger's resulting instruction code.
9StringA human-readable translation of the trigger's resulting instruction + code.
+ + 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) +
+ + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Called by the when a + has fired, and it's associated + is about to be executed. + + It is called before the method of this + interface. + + + The that has fired. + The that will be passed to the 's method. + + + + 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. + + + + 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. + + + + 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. + + + + + Logger instance to use. Defaults to common logging. + + + + + Get or set the message that is printed upon the completion of a trigger's + firing. + + + + + Get or set the message that is printed upon a trigger's firing. + + + + + Get or set the message that is printed upon a trigger's mis-firing. + + + + + Get the name of the . + + + + + + This plugin catches the event of the VM terminating (such as upon a CRTL-C) + and tells the scheuler to Shutdown. + + + James House + Marko Lahma (.NET) + + + + Called during creation of the in order to give + the a chance to Initialize. + + + + + 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. + + + + + Called in order to inform the that it + should free up all of it's resources because the scheduler is shutting + down. + + + + + Determine whether or not the plug-in is configured to cause a clean + Shutdown of the scheduler. + + The default value is . + + + + + + + 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 + file for changes. + + + The periodically scanning of files for changes is not currently supported in a + clustered environment. + + James House + Pierre Awaragi + + + + Initializes a new instance of the class. + + + + + + + + + + + Called during creation of the in order to give + the a chance to initialize. + + The name. + 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. + + + + + 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 . + + + + + Information about a file that should be processed by . + + + + + Default object serialization strategy that uses + under the hood. + + Marko Lahma + + + + Interface for object serializers. + + Marko Lahma + + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize, always non-null. + + + + Deserializes object from byte array presentation. + + Data to deserialize object from, always non-null and non-empty. + + + + Serializes given object as bytes + that can be stored to permanent stores. + + Object to serialize. + + + + Deserializes object from byte array presentation. + + 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 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 + + The clusterwide unique instance id. + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + A JobFactory that instantiates the Job instance (using the default no-arg + 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 + Marko Lahma (.NET) + + + + The default JobFactory used by Quartz - simply calls + on the job class. + + + + James House + Marko Lahma (.NET) + + + + A JobFactory is responsible for producing instances of + classes. + + + This interface 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. + + + + + 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 + Scheduler will move all triggers associated with the Job into the + 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. + + 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. + + + 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 + Scheduler will move all triggers associated with the Job into the + 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 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 + Scheduler will move all triggers associated with the Job into the + 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 newly instantiated Job + SchedulerException if there is a problem instantiating the Job. + + + + Sets the object properties. + + The object to set properties to. + The data to set. + + + + Whether the JobInstantiation should fail and throw and exception if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + Get or set whether a warning should be logged if + a key (name) and value (type) found in the JobDataMap does not + correspond to a proptery setter on the Job class. + + + + + 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 + Marko Lahma (.NET) + + + + 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 + used, in order to give the it a chance to Initialize. + + + + + Called by the QuartzScheduler to inform the that + 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 + it should free up all of it's resources because the scheduler is + shutting down. + + + + + Clears (deletes!) all scheduling data - all s, s + s. + + + + + Store the given and . + + 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 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. + + + if a with the given name and + group was found and removed from the store. + + + + + Remove (delete) the with the + given name. + + + if a with the given + name and group was found and removed from the store. + + + + + Store the given . + + 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. + + + + if a with the given + name and group was found and removed from the store. + + The to be removed. + Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger. + + + + Replaces the trigger. + + The of the to be replaced. + The new trigger. + + + + + Retrieve the for the given + . + + + The desired , or null if there is no match. + + + + + Retrieve the given . + + + 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 . + + + + + + + + + + + Store the given . + + 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 . + + + + 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. + + + + + Retrieve the given . + + 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 . + + + + + 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 + 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 + that have the given group name. + + + + + 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. + + + + + + Gets the trigger wrappers for calendar. + + Name of the cal. + + + + + Pause the with the given name. + + + + + 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 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 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 the + given group. + + If any missed one or more fire-times, then the + 's misfire instruction will be applied. + + + + + + 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. + + + + + + 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. + + + + + + Pause all triggers - equivalent of calling + on every group. + + When is called (to un-pause), trigger misfire + instructions WILL be applied. + + + + + + + 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. + + + + + + + Applies the misfire. + + 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 + (reserved). + + + + + Inform the that the scheduler is now firing the + 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 + associated ), and that the + in the given should be updated if the + is stateful. + + + + + Sets the state of all triggers of job to specified state. + + + + + Peeks the triggers. + + + + + + + + + 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. + + + + + Returns whether this instance supports persistence. + + + + + + + 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. + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Possible internal trigger states + in RAMJobStore + + + + + Waiting + + + + + Acquired + + + + + Executing + + + + + Complete + + + + + Paused + + + + + Blocked + + + + + Paused and Blocked + + + + + Error + + + + + Helper wrapper class + + + + + The key used + + + + + Job's key + + + + + The trigger + + + + + Current state + + + + + 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. + + + + + 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 . + + + + + Scheduler exporter that exports scheduler to remoting context. + + Marko Lahma + + + + Service interface for scheduler exporters. + + Marko Lahma + + + + Binds (exports) scheduler to external context. + + + + + + Unbinds scheduler from external context. + + + + + + Registers remoting channel if needed. This is determined + by checking whether there is a positive value for port. + + + + + Gets or sets the port used for remoting. + + + + + Gets or sets the name to use when exporting + scheduler to remoting context. + + + + + Gets or sets the name to use when binding to + tcp channel. + + + + + Sets the channel type when registering remoting. + + + + + + Sets the used when + exporting to remoting context. Defaults to + . + + + + + A implementation that creates + connection to remote scheduler using remoting. + + + + + Client Proxy to a IRemotableQuartzScheduler + + + + + Returns a client proxy to a remote . + + + + + Returns a client proxy to a remote . + + + + + Gets or sets the remote scheduler address. + + 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) + + + + + + Generate the instance id for a + + The clusterwide unique instance id. + + + + 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) + + + + The interface to be implemented by classes that want to provide a thread + pool for the 's use. + + + implementation instances should ideally be made + for the sole use of Quartz. Most importantly, when the method + returns a value of 1 or greater, + there must still be at least one available thread in the pool when the + method is called a few moments (or + many moments) later. If this assumption does not hold true, it may + result in extra JobStore queries and updates, and if clustering features + are being used, it may result in greater imballance of load. + + + James House + Marko Lahma (.NET) + + + + 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 implementation of this method should block until there is at + least one available thread. + + the number of currently available threads + + + + Must be called before the is + used, in order to give the it a chance to Initialize. + + + Typically called by the . + + + + + Called by the QuartzScheduler to inform the + that it should free up all of it's resources because the scheduler is + shutting down. + + + + + 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. + + + + + Create a new (unconfigured) . + + + + + Create a new with the specified number + of s that have the given priority. + + + the number of worker s in the pool, must + be > 0. + + + the thread priority for the worker threads. + + + + + + Called by the QuartzScheduler before the is + used, in order to give the it a chance to Initialize. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Run the given object in the next available + . If while waiting the thread pool is asked to + shut down, the Runnable is executed immediately within a new additional + thread. + + The to be added. + + + + Creates the worker threads. + + The thread count. + + + + + Terminate any worker threads in this thread group. + Jobs currently in progress will complete. + + + + + Gets or sets the number of worker threads in the pool. + Set has no effect after has been called. + + + + + Get or set the thread priority of worker threads in the pool. + Set operation has no effect after has been called. + + + + + Gets or sets the thread name prefix. + + The thread name prefix. + + + + Gets or sets the value of makeThreadsDaemons. + + + + + Gets the size of the pool. + + 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. + + + + + Create a worker thread and start it. Waiting for the next Runnable, + executing it, and waiting for the next Runnable, until the Shutdown + flag is set. + + + + + Create a worker thread, start it, Execute the runnable and terminate + the thread (one time execution). + + + + + Signal the thread that it should terminate. + + + + + Loop, executing targets as they are received. + + + + + A that simply calls . + + + James House + Marko Lahma (.NET) + + + + 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 Uri 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 Stream object + + + + + InstanceIdGenerator that will use a to configure the scheduler. + If no value set for the property, a is thrown. + Alex Snaps + + + + + System property to read the instanceId from. + + + + + Returns the cluster wide value for this scheduler instance's id, based on a system property. + + + + + A string of text to prepend (add to the beginning) to the instanceId found in the system property. + + + + + A string of text to postpend (add to the end) to the instanceId found in the system property. + + + + + The name of the system property from which to obtain the instanceId. + + + Defaults to . + + + + + This is class is a simple implementation of a zero size thread pool, based on the + 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 + Marko Lahma (.NET) + + + + 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. + + + + 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 simple class (structure) used for returning execution-time data from the + JobStore to the . + + + James House + Marko Lahma (.NET) + + + + 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. + + + + + Result holder for trigger firing event. + + + + + Constructor. + + + + + + Constructor. + + + + + Bundle. + + + + + Possible exception. + + + + + Extension methods for . + + + + + Tries to read value and returns the value if successfully read. Otherwise return default value + for value's type. + + + + + + + + + + Extension methods for simplified access. + + + + + Returns string from given column name, or null if DbNull. + + + + + Returns int from given column name. + + + + + Returns long from given column name. + + + + + Returns long from given column name, or null if DbNull. + + + + + Returns decimal from given column name. + + + + + Manages a collection of IDbProviders, and provides transparent access + to their database. + + + James House + Sharada Jambula + Mohammad Rezaei + Marko Lahma (.NET) + + + + 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. + + Name of the ds. + + + + + Get the class instance. + + an instance of this class + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified. + + James House + Marko Lahma (.NET) + + + + Create a DirtyFlagMap that 'wraps' a . + + + + + Create a DirtyFlagMap that 'wraps' a that has the + given initial capacity. + + + + + Serialization constructor. + + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + When implemented by a class, removes all elements from the . + + + The is read-only. + + + + + When implemented by a class, determines whether the contains an element with the specified key. + + 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 key of the element to remove. + + is . + + The is read-only. + -or- + The has a fixed size. + + + + + When implemented by a class, returns an + for the . + + + An for the . + + + + + When implemented by a class, adds an element with the provided key and value to the . + + 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. + + 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 ). + + + + + Determines whether the specified obj contains value. + + The obj. + + true if the specified obj contains value; otherwise, false. + + + + + Gets the entries as a set. + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets keyset for this map. + + + + + + Puts the value behind a specified key. + + The key. + The val. + + + + + Puts all. + + The t. + + + + Determine whether the is flagged dirty. + + + + + Get a direct handle to the underlying Map. + + + + + Gets a value indicating whether this instance is empty. + + true if this instance is empty; otherwise, false. + + + + Gets or sets the with the specified key. + + + + + + When implemented by a class, gets the number of + elements contained in the . + + + + + + When implemented by a class, gets an containing the values in the . + + + + + + When implemented by a class, gets an containing the keys of the . + + + + + + When implemented by a class, gets a value indicating whether the + is read-only. + + + + + + When implemented by a class, gets a value indicating whether the + has a fixed size. + + + + + + When implemented by a class, gets an object that + can be used to synchronize access to the . + + + + + + When implemented by a class, gets a value + indicating whether access to the is synchronized + (thread-safe). + + + + + + Utility class for file handling related things. + + Marko Lahma + + + + Resolves file to actual file if for example relative '~' used. + + File name to check + Expanded file name or actual no resolving was done. + + + + Object representing a job or trigger key. + + Jeffrey Wescott + Marko Lahma (.NET) + + + + The default group for scheduling entities, with the value "DEFAULT". + + + + + Construct a new key with the given name and group. + + the name + the group + + + + Return the string representation of the key. The format will be: + <group>.<name>. + + + + the string representation of the key + + + + + Get the name portion of the key. + + the name + + + + + Get the group portion of the key. + + + + 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. + + Marko Lahma .NET + + + + 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 + + + + 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. + + + + Empties a data slot with the specified name. + + The name of the data slot to empty. + + + + Generic extension methods for objects. + + + + + Creates a deep copy of object by serializing to memory stream. + + + + + + Utility methods that are used to convert objects from one type into another. + + Aleksandar Seovic + Marko Lahma + + + + 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. + + + + 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. + + + + + Instantiates an instance of the type specified. + + + + + + Sets the object properties using reflection. + + + + + Sets the object properties using reflection. + + The object to set values to. + The properties to set to object. + + + + This is an utility class used to parse the properties. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + The props. + + + + Gets the string property. + + The name. + + + + + Gets the string property. + + The name. + The default value. + + + + + Gets the string array property. + + The name. + + + + + Gets the string array property. + + The name. + The default value. + + + + + Gets the boolean property. + + The name. + + + + + Gets the boolean property. + + The name. + if set to true [defaultValue]. + + + + + Gets the byte property. + + The name. + + + + + Gets the byte property. + + The name. + The default value. + + + + + Gets the char property. + + The name. + + + + + Gets the char property. + + The name. + The default value. + + + + + Gets the double property. + + The name. + + + + + Gets the double property. + + The name. + The default value. + + + + + Gets the float property. + + The name. + + + + + Gets the float property. + + The name. + The default value. + + + + + Gets the int property. + + The name. + + + + + Gets the int property. + + The name. + The default value. + + + + + Gets the int array property. + + The name. + + + + + Gets the int array property. + + The name. + The default value. + + + + + Gets the long property. + + The name. + + + + + Gets the long property. + + The name. + The def. + + + + + Gets the TimeSpan property. + + The name. + The def. + + + + + Gets the short property. + + The name. + + + + + Gets the short property. + + The name. + The default value. + + + + + Gets the property groups. + + The prefix. + + + + + Gets the property group. + + The prefix. + + + + + Gets the property group. + + The prefix. + if set to true [strip prefix]. + + + + + 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. + + + + Reads the properties from assembly (embedded resource). + + The file name to read resources from. + + + + + Reads the properties from file system. + + The file name to read resources from. + + + + + Gets the underlying properties. + + The underlying properties. + + + + Extension methods for . + + + + + Allows null-safe trimming of string. + + + + + + + Trims string and if resulting string is empty, null is returned. + + + + + + + An implementation of that wraps another + and flags itself 'dirty' when it is modified, enforces that all keys are + strings. + + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The initial capacity. + + + + Serialization constructor. + + + + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + if the specified is equal to the + current ; otherwise, . + + + + + 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 . + + + + + Gets the keys. + + + + + + Adds the name-value pairs in the given to the . + + All keys must be s, and all values must be serializable. + + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + Adds the given value to the 's + data map. + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reports JobSchedulingDataProcessor validation exceptions. + + Chris Bonham + Marko Lahma (.NET) + + + + Constructor for ValidationException. + + + + + Constructor for ValidationException. + + exception message. + + + + Constructor for ValidationException. + + collection of validation exceptions. + + + + 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. + + + + Gets the validation exceptions. + + The validation exceptions. + + + + Returns the detail message string. + + + + + 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) + + + + Constructor for XMLSchedulingDataProcessor. + + + + + Process the xml file in the default location (a file named + "quartz_jobs.xml" in the current working directory). + + + + + Process the xml file named . + + meta data file name. + + + + Process the xmlfile named with the given system + ID. + + Name of the file. + The system id. + + + + Process the xmlfile named with the given system + ID. + + The stream. + The system id. + + + + 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. + + + + + + Process the xml file in the default location, and schedule all of the + jobs defined within it. + + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + meta data file name. + The scheduler. + + + + Process the xml file in the given location, and schedule all of the + jobs defined within it. + + Name of the file. + The system id. + The sched. + + + + Schedules the given sets of jobs and triggers. + + The sched. + + + + Adds a detected validation exception. + + The exception. + + + + Resets the the number of detected validation exceptions. + + + + + Throws a ValidationException if the number of validationExceptions + detected is greater than zero. + + + DTD validation exception. + + + + + Whether the existing scheduling data (with same identifiers) will be + overwritten. + + + 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. + + + + + + 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 log. + + The log. + + + + Helper class to map constant names to their values. + + + + + CalendarIntervalScheduleBuilder is a + that defines calendar time (day, week, month, year) interval-based + schedules for Triggers. + + + + 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); + + + + + + + + + + + Base class for implementors. + + + + + + Schedule builders offer fluent interface and are responsible for creating schedules. + + + + + + + + + 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. + + + + + + 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. + + + + + + Create a CalendarIntervalScheduleBuilder. + + + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + 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 CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.HOUR that the produced + Trigger will repeat at. + + + + the number of hours at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + Specify an interval in the IntervalUnit.DAY that the produced + Trigger will repeat at. + + + + the number of days at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + 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 + + + + + + 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 + + + + + + Specify an interval in the IntervalUnit.YEAR that the produced + Trigger will repeat at. + + + + the number of years at which the trigger should repeat. + the updated CalendarIntervalScheduleBuilder + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CalendarIntervalScheduleBuilder + + + + + TimeZone in which to base the schedule. + + the time-zone for the schedule + the updated CalendarIntervalScheduleBuilder + + + + + 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). + + + + + + Extension methods that attach to . + + + + + 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: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - /// /
Minutes 0-59 , - /// /
Hours 0-23 , - /// /
Day-of-month 1-31 , - /// ? / L W C
Month 1-12 or JAN-DEC , - /// /
Day-of-Week 1-7 or SUN-SAT , - /// ? / L #
Year (Optional) empty, 1970-2199 , - /// /
+ + 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 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 + 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. + + + + + 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. + + + + + Hours. + + + + + Days of month. + + + + + Months. + + + + + Days of week. + + + + + Years. + + + + + Last day of week. + + + + + 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. + + + 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. + + + + + Gets the numeric value from string. + + The string to parse from. + The i. + + + + + Gets the month number. + + The string to map with. + + + + + Gets the day of week number. + + The s. + + + + + Gets the time from given time parts. + + The seconds. + The minutes. + The hours. + The day of month. + The month. + + + + + Gets the next fire time after the given time. + + The UTC time to start searching from. + + + + + Creates the date time without milliseconds. + + The time. + + + + + Advance the calendar to the particular hour paying particular attention + to daylight saving problems. + + The date. + The hour. + + + + + Gets the time before. + + The end time. + + + + + NOT YET IMPLEMENTED: Returns the final time that the + will match. + + + + + + Determines whether given year is a leap year. + + The year. + + 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. + + + A new object that is a copy of this instance. + + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 + + + + Sets or gets the time zone for which the of this + will be resolved. + + + + + Gets the cron expression string. + + The cron expression string. + + + + Helper class for cron expression handling. + + + + + The value. + + + + + The position. + + + + + 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); + + + + + + + + + + + + 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. + + + + + + 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 + + + + + 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 + + + + + Create a CronScheduleBuilder with the given cron-expression. + + the cron expression to base the schedule on. + the new CronScheduleBuilder + + + + + Create a CronScheduleBuilder with a cron-expression that sets the + schedule to fire every day at the given time (hour and minute). + + + + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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 + + + + + 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). + + + + the day of the week to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + 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). + + + + the day of the month to fire + the hour of day to fire + the minute of the given hour to fire + the new CronScheduleBuilder + + + + + The in which to base the schedule. + + + + the time-zone for the schedule. + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + Extension methods that attach to . + + + + + A implementation that build schedule for DailyTimeIntervalTrigger. + + + + 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); + + + James House + Zemian Deng saltnlight5@gmail.com + Nuno Maia (.NET) + + + + A set of all days of the week. + + + The set contains all values between and + + + + + A set of the business days of the week (for locales similar to the USA). + + + The set contains all values between and + + + + + A set of the weekend days of the week (for locales similar to the USA). + + + The set contains and + + + + + Create a DailyTimeIntervalScheduleBuilder + + The new DailyTimeIntervalScheduleBuilder + + + + 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. + + + + + + Specify the time unit and interval for the Trigger to be produced. + + + + the interval at which the trigger should repeat. + the time unit (IntervalUnit) of the interval. + the updated CalendarIntervalScheduleBuilder + + + + + + 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> + + + + + + 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> + + + + + + Specify an interval in the IntervalUnit.Hour that the produced + Trigger will repeat at. + + The number of hours at which the trigger should repeat. + the updated DailyTimeIntervalScheduleBuilder> + + + + + + 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 + + + + Set the trigger to fire on the given days of the week. + + a variable length list of week days representing the days of the week + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days from Monday through Friday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on the days Saturday and Sunday. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to fire on all days of the week. + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the trigger to begin firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Set the startTimeOfDay for this trigger to end firing each day at the given time. + + + the updated DailyTimeIntervalScheduleBuilder + + + + Calculate and set the EndTimeOfDay using count, interval and StarTimeOfDay. This means + that these must be set before this method is call. + + + the updated DailyTimeIntervalScheduleBuilder + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + the updated DailyTimeIntervalScheduleBuilder + + + + + Set number of times for interval to repeat. + + + Note: if you want total count = 1 (at start time) + repeatCount + + + + + + + Extension methods that attach to . + + + + + DateBuilder is used to conveniently create + instances that meet particular criteria. + + + + 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); + + + + + + + + Create a DateBuilder, with initial settings for the current date + and time in the system default timezone. + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the system default timezone. + + + + + + Create a DateBuilder, with initial settings for the current date and time in the given timezone. + + Time zone to use. + + + + + Build the defined by this builder instance. + + New date time based on builder parameters. + + + + Set the hour (0-23) for the Date that will be built by this builder. + + + + + + + Set the minute (0-59) for the Date that will be built by this builder. + + + + + + + Set the second (0-59) for the Date that will be built by this builder, and truncate the milliseconds to 000. + + + + + + + Set the day of month (1-31) for the Date that will be built by this builder. + + + + + + + Set the month (1-12) for the Date that will be built by this builder. + + + + + + + Set the year for the Date that will be built by this builder. + + + + + + + Set the TimeZoneInfo for the Date that will be built by this builder (if "null", system default will be used) + + + + + + + Get a object that represents the given time, on + tomorrow's date. + + + + + + + + + Get a object that represents the given time, on + today's date (equivalent to . + + + + + + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + + 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 + + + + 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 + + + + 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 + + + + Returns a date that is rounded to the next even second after the current time. + + the new rounded date + + + + 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 + + + + 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 + + + + 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 + +
+ + + 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 + + + + + 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) + + + + 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) + + + + Called by the when a user + interrupts the . + + void (nothing) if job interrupt is successful. + + + + Supported interval units used by . + + + + + 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) + + + + 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); + + + + + + + + + Create a JobBuilder with which to define a . + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Create a JobBuilder with which to define a , + and set the class name of the job to be executed. + + a new JobBuilder + + + + Produce the instance defined by this JobBuilder. + + the defined JobDetail. + + + + Use a with the given name and default 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 updated JobBuilder + + + + + + 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 + + + + + + Use a to identify the JobDetail. + + + 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 + + + + + + Set the given (human-meaningful) description of the Job. + + the description for the Job + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + Set the class which will be instantiated and executed when a + Trigger fires that is associated with this JobDetail. + + the updated JobBuilder + + + + + 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 + + + + + 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 + + + + 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 updated JobBuilder + + + + + 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 + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + Add the given key-value pair to the JobDetail's . + + the updated JobBuilder + + + + + 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 + + + + + Holds state information for instances. + + + 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) + + + + Create an empty . + + + + + Create a with the given data. + + + + + Create a with the given data. + + + + + Serialization constructor. + + + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + Adds the given value as a string version to the + 's data map. + + + + + 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 . + + + + + 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 . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Retrieve the identified value from the . + + + + + Gets the date time. + + The key. + + + + + 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 + occurred while executing, and whether or not the requests + to be re-fired immediately (using the same , + or whether it wants to be unscheduled. + + + Note that if the flag for 'refire immediately' is set, the flags for + unscheduling the Job are ignored. + + + + + James House + Marko Lahma (.NET) + + + + Create a JobExcecutionException, with the 're-fire immediately' flag set + to . + + + + + Create a JobExcecutionException, with the given cause. + + The cause. + + + + Create a JobExcecutionException, with the given message. + + + + + Initializes a new instance of the class. + + The message. + The original cause. + + + + Create a JobExcecutionException with the 're-fire immediately' flag set + to the given value. + + + + + Create a JobExcecutionException with the given underlying exception, and + the 're-fire immediately' flag set to the given value. + + + + + Create a JobExcecutionException with the given message, and underlying + exception, and the 're-fire immediately' flag set to the given value. + + + + + 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. + + + + Creates and returns a string representation of the current exception. + + + A string representation of the current exception. + + + + + + Gets or sets a value indicating whether to unschedule firing trigger. + + + true if firing trigger should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to unschedule all triggers. + + + true if all triggers should be unscheduled; otherwise, false. + + + + + Gets or sets a value indicating whether to refire immediately. + + 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) + + + + Instruction not set (yet). + + + + + 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. + + + + + Instructs the that upon a mis-fire + 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 + 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. + + + + 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 + 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 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 + 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 + 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 + 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 + 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 + to go directly to the 'COMPLETE' state if all the end-time of the trigger + has arrived. + + + + + + misfire instructions for CronTrigger + + + + + 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 NthIncludedDayTrigger + + + + + Instructs the that upon a mis-fire situation, the + wants to be fired now by the + + + + + + Instructs the that upon a mis-fire situation, the + wants to have + nextFireTime updated to the next time in the schedule after + 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 + , or + that is not excluded by the associated + calendar. + + + When determining what the Nth day of the month or year + is, will skip excluded days on the + associated calendar. This would commonly be used in an Nth + business day situation, in which the user wishes to fire a particular job on + the Nth business day (i.e. the 5th business day of + 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 + values can be changed using the , , and + 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 + 1 W 1 2 3 4 5 W 1 2 W + W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W + W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W + W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W + W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30 + W + + Where W's represent weekend days, and H's represent holidays, all of which + are excluded on a calendar associated with an + with n=5 and + intervalType=IntervalTypeMonthly. In this case, the trigger + would fire on the 8th of July (because of the July 4 holiday), + the 5th of August, and the 8th of September (because + of Labor Day). + + Aaron Craven + Marko Lahma (.NET) + + + + Indicates a monthly trigger type (fires on the Nth included + day of every month). + + + + indicates a yearly trigger type (fires on the Nth included + day of every year). + + + + + Indicates a weekly trigger type (fires on the Nth included + day of every week). When using this interval type, care must be taken + not to think of the value of as an analog to + . Such a comparison can only + be drawn when there are no calendars associated with the trigger. To + illustrate, consider an with + n = 3 which is associated with a Calendar excluding + non-weekdays. The trigger would fire on the 3rd + included day of the week, which would be 4th + actual day of the week. + + + + + Create an with no specified name, + 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 + called before the can be placed into + a . + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + + + + Create an with the given name and + 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 must + be called before the can be placed + into a . + + + the name for the + + the group for the + + + + + Create an with the given name and + 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=, + fireAtTime="12:00"). + + The name for the . + The group for the . + The name of the job to associate with the . + The group containing the job to associate with the . + + + + Returns the next UTC time at which the + will fire. If the trigger will not fire again, will be + 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 + + + + + Returns the previous UTC time at which the + fired. If the trigger has not yet + fired, will be returned. + + 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 + weeks after the given date/time, will be returned. For + triggers with intervalType = + + , if the trigger will not fire within 12 + months after the given date/time, will be returned. + For triggers with intervalType = + + , if the trigger will not fire within 12 + 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, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + + the first time the trigger will fire following the specified date + + + + + 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). + + + + + 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 ). + + + + + Called after the has executed the + associated with the in order + to get the final instruction code from the trigger. + + + The that was used by the + 's method. + + + The thrown by the + , if any (may be ) + + one of the Trigger.INSTRUCTION_XXX constants. + + + + + 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 + + + + + A boolean indicator of whether the trigger could potentially fire + again. + + + + + Indicates whether is a valid misfire + instruction for this . + + Whether is valid. + + + Updates the 's state based on the + MisfireInstruction that was selected when the + was created +

+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY, + then the instruction will be interpreted as + . +

+
+ a new or updated calendar to use for the trigger + +
+ + + Updates the 's state based on the + given new version of the associated . + + A new or updated calendar to use for the trigger + the amount of time that must + be between "now" and the time the next + firing of the trigger is supposed to occur. + + + + + Calculates the first time an with + intervalType = IntervalTypeWeekly will fire + after the specified date. See for more + information. + + The time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + date + + + + + Calculates the first UTC time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified date + + + + Calculates the first time an with + intervalType = will fire + after the specified date. See for more + information. + + + The UTC time after which to find the nearest fire time. + This argument is treated as exclusive 舒 that is, + if afterTime is a valid fire time for the trigger, it + will not be returned as the next fire time. + + the first time the trigger will fire following the specified + 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 + should fire. If the Nth + day of the interval does not exist (i.e. the 32nd of a + month), the trigger simply will never fire. N may not be less than 1. + + + + + Returns the interval type for the . + + + Sets the interval type for the . If + , the trigger will fire on the + Nth included day of every month. If + , the trigger will fire on the + Nth included day of every year. If + , the trigger will fire on the + Nth included day of every week. + + + + + + + + Returns the fire time for the as a + string with the format "HH:MM[:SS]", with HH representing the + 24-hour clock hour of the fire time. Seconds are optional and their + inclusion depends on whether or not they were provided to + . + + + + + Returns the for the + . + + + + 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. + + + + + + Returns the last UTC time the will fire. + If the trigger will not fire at any point between + and , will be returned. + + the last time the trigger will fire. + + + + Tells whether this Trigger instance can handle events + in millisecond precision. + + + + + + Sets or gets the time zone in which the will be resolved. + If no time zone is provided, then the default time zone will be used. + + + + + + + Gets or sets the trigger's calendar week rule. + + The trigger calendar week rule. + + + + Gets or sets the trigger's calendar first day of week rule. + + The trigger calendar first day of week. + + + + An exception that is thrown to indicate that an attempt to store a new + 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. + + + + + + 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 and auto-generate a + 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 . + + + + 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 + the - or one of the components it + configures. + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given message + and cause. + + + + + 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. + + + + 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 + has no further instructions. + + + + + 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 + ability to 'see' anything placed in the context by its last execution). + + + + + Instructs the that the + should be put in the state. + + + + + Instructs the that the + wants itself deleted. + + + + + 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 + this one should be put in the state. + + + + + Instructs the that the + should be put in the state. + + + + + Describes the settings and capabilities of a given + instance. + + James House + Marko Lahma (.NET) + + + + Initializes a new instance of the class. + + Name of the scheduler. + The scheduler instance. + The scheduler type. + if set to true, scheduler is a remote scheduler. + if set to true, scheduler is started. + 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 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. + + + + Returns a formatted (human readable) string describing all the 's + 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.
+            
+
+
+
+ + + Return a simple string representation of this object. + + + + + Returns the name of the . + + + + + Returns the instance Id of the . + + + + + Returns the class-name of the instance. + + + + + Returns whether the is being used remotely (via remoting). + + + + + Returns whether the scheduler has been started. + + + Note: may return even if + returns . + + + + + Reports whether the is in standby mode. + + + Note: may return even if + returns . + + + + + Reports whether the has been Shutdown. + + + + + Returns the class-name of the instance that is + being used by the . + + + + + Returns the type name of the instance that is + being used by the . + + + + + Returns the number of threads currently in the 's + + + + + Returns the version of Quartz that is 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.. + + + + + Returns whether or not the 's + instance supports persistence. + + + + + Returns whether or not the 's + is clustered. + + + + + 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 SimpleScheduleBuilder. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 minute interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of minutes. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 second interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of seconds. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with a 1 hour interval. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat forever with an interval + of the given number of hours. + + + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 minute interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of minutes. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 second interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with an interval of the given number of seconds. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + Create a SimpleScheduleBuilder set to repeat the given number + of times - 1 with a 1 hour interval. + + + Note: Total count = 1 (at start time) + repeat count + + the new SimpleScheduleBuilder + + + + 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 + + + + 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. + + + + + + + + Specify a repeat interval in milliseconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + Specify a repeat interval in seconds. + + + + the time span at which the trigger should repeat. + the updated SimpleScheduleBuilder + + + + + + 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 + + + + + + Specify that the trigger will repeat indefinitely. + + + + the updated SimpleScheduleBuilder + + + + + + + If the Trigger misfires, use the + instruction. + + + + the updated CronScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + the updated SimpleScheduleBuilder + + + + + If the Trigger misfires, use the + instruction. + + + + 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. + + + + + 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 + + + + 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. + + + + 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. + + + + Gets the rule. + + The rule. + + + + Possible parse rules for s. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TriggerBuilder 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 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); + + + + + + + + + + Create a new TriggerBuilder with which to define a + specification for a Trigger. + + + + the new TriggerBuilder + + + + Produce the . + + + + a Trigger that meets the specifications of the builder. + + + + Use a with the given name and default 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 updated TriggerBuilder + + + + + + 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 + + + + + + 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 + + + + + + Set the given (human-meaningful) description of the Trigger. + + + + the description for the Trigger + the updated TriggerBuilder + + + + + 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 + + + + + + Set the name of the that should be applied to this + Trigger's schedule. + + + + the name of the Calendar to reference. + the updated TriggerBuilder + + + + + + 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 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 updated TriggerBuilder + + + + + Set the time at which the Trigger will no longer fire - even if it's + schedule has remaining repeats. + + + + the end time for the Trigger. If null, the end time is indefinite. + the updated TriggerBuilder + + + + + + Set the that will be used to define the + Trigger's schedule. + + + The particular used will dictate + the concrete type of Trigger that is produced by the TriggerBuilder. + + the SchedulerBuilder to use. + the updated TriggerBuilder + + + + + + + + Set the identity of the Job which should be fired by the produced + Trigger. + + + + the identity of the Job to fire. + the updated TriggerBuilder + + + + + 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. + + + + the name of the job (in default group) to fire. + the updated TriggerBuilder + + + + + 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 name of the job to fire. + the group of the job to fire. + the updated TriggerBuilder + + + + + Set the identity of the Job which should be fired by the produced + Trigger, by extracting the JobKey from the given job. + + + + the Job to fire. + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Add the given key-value pair to the Trigger's . + + + + the updated TriggerBuilder + + + + + Common constants for triggers. + + + + + The default value for priority. + + + + + 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); + + + + + + + + All trigger states known to Scheduler. + + Marko Lahma (.NET) + + + + Indicates that the is in the "normal" state. + + + + + Indicates that the is in the "paused" state. + + + + + Indicates that the is in the "complete" state. + + + "Complete" indicates that the trigger has not remaining fire-times in + its schedule. + + + + + Indicates that the is in the "error" state. + + + + 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. + + + + + + Indicates that the is in the "blocked" state. + + + A arrives at the blocked state when the job that + it is associated with has a and it is + currently executing. + + + + + + Indicates that the does not exist. + + + + + 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. + + + + + Convenience and utility methods for simplifying the construction and + configuration of s and DateTimeOffsetOffsets. + + + + 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. + + 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 + 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 + 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 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 + The starting date at which to find fire times + The ending date at which to stop finding fire times + List of java.util.Date objects + + + + An exception that is thrown to indicate that a call to + failed without interrupting the Job. + + + James House + Marko Lahma (.NET) + + + + Create a with the given message. + + + + + Create a with the given cause. + + + + + 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. + +
+