Quartz 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); 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 . Represents an ordered collection of keys and values with the same performance as with O(1) lookups and adds but with O(n) inserts and removes. The type of the keys in the dictionary. The type of the values in the dictionary. Gets the number of key/value pairs contained in the . The number of key/value pairs contained in the . Gets the that is used to determine equality of keys for the dictionary. The generic interface implementation that is used to determine equality of keys for the current and to provide hash values for the keys. Gets a collection containing the keys in the . An containing the keys in the . Gets a collection containing the values in the . An containing the values in the . Gets or sets the value associated with the specified key as an O(1) operation. The key of the value to get or set. The value associated with the specified key. If the specified key is not found, a get operation throws a , and a set operation creates a new element with the specified key. is null. The property is retrieved and does not exist in the collection. Gets or sets the value at the specified index as an O(1) operation. The zero-based index of the element to get or set. The value at the specified index. is less than 0.-or- is equal to or greater than . Initializes a new instance of the class that is empty, has the default initial capacity, and uses the default equality comparer for the key type. Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the default equality comparer for the key type. The initial number of elements that the can contain. is less than 0. Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified . The implementation to use when comparing keys, or null to use the default for the type of the key. Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified . The initial number of elements that the can contain. The implementation to use when comparing keys, or null to use the default for the type of the key. is less than 0. Adds the specified key and value to the dictionary as an O(1) operation. The key of the element to add. The value of the element to add. The value can be null for reference types. is null. An element with the same key already exists in the . Removes all keys and values from the . Determines whether the contains the specified key as an O(1) operation. The key to locate in the . true if the contains an element with the specified key; otherwise, false. is null. Resizes the internal data structure if necessary to ensure no additional resizing to support the specified capacity. The number of elements that the must be able to contain. The capacity of the . is less than 0. Returns an enumerator that iterates through the . An structure for the . Adds a key/value pair to the if the key does not already exist as an O(1) operation. The key of the element to add. The value to be added, if the key does not already exist. The value for the key. This will be either the existing value for the key if the key is already in the dictionary, or the new value if the key was not in the dictionary. is null. Adds a key/value pair to the by using the specified function, if the key does not already exist as an O(1) operation. The key of the element to add. The function used to generate a value for the key. The value for the key. This will be either the existing value for the key if the key is already in the dictionary, or the new value for the key as returned by valueFactory if the key was not in the dictionary. is null.-or- is null. Returns the zero-based index of the element with the specified key within the as an O(1) operation. The key of the element to locate. The zero-based index of the element with the specified key within the , if found; otherwise, -1. is null. Inserts the specified key/value pair into the at the specified index as an O(n) operation. The zero-based index of the key/value pair to insert. The key of the element to insert. The value of the element to insert. is null. An element with the same key already exists in the . is less than 0.-or- is greater than . Moves the element at the specified fromIndex to the specified toIndex while re-arranging the elements in between. The zero-based index of the element to move. The zero-based index to move the element to. is less than 0. -or- is equal to or greater than -or- is less than 0. -or- is equal to or greater than Moves the specified number of elements at the specified fromIndex to the specified toIndex while re-arranging the elements in between. The zero-based index of the elements to move. The zero-based index to move the elements to. The number of elements to move. is less than 0. -or- is equal to or greater than . -or- is less than 0. -or- is equal to or greater than . -or- is less than 0. + is greater than . -or- + is greater than . Removes the value with the specified key from the as an O(n) operation. The key of the element to remove. true if the element is successfully found and removed; otherwise, false. This method returns false if is not found in the . is null. Removes the value with the specified key from the and returns the value as an O(n) operation. The key of the element to remove. When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the element is successfully found and removed; otherwise, false. This method returns false if is not found in the . is null. Removes the value at the specified index from the as an O(n) operation. The zero-based index of the element to remove. is less than 0.-or- is equal to or greater than . Sets the capacity of an object to the actual number of elements it contains, rounded up to a nearby, implementation-specific value. Sets the capacity of an object to the specified capacity, rounded up to a nearby, implementation-specific value. The number of elements that the must be able to contain. is less than . Tries to add the specified key and value to the dictionary as an O(1) operation. The key of the element to add. The value of the element to add. The value can be null for reference types. true if the element was added to the ; false if the already contained an element with the specified key. is null. Gets the value associated with the specified key as an O(1) operation. The key of the value to get. When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. true if the contains an element with the specified key; otherwise, false. is null. Enumerates the elements of a . Gets the element at the current position of the enumerator. The element in the at the current position of the enumerator. Releases all resources used by the . Advances the enumerator to the next element of the . true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Represents the collection of keys in a . This class cannot be inherited. Gets the number of elements contained in the . The number of elements contained in the . Gets the key at the specified index as an O(1) operation. The zero-based index of the key to get. The key at the specified index. is less than 0.-or- is equal to or greater than . Returns an enumerator that iterates through the . A for the . Enumerates the elements of a . Gets the element at the current position of the enumerator. The element in the at the current position of the enumerator. Releases all resources used by the . Advances the enumerator to the next element of the . true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Represents the collection of values in a . This class cannot be inherited. Gets the number of elements contained in the . The number of elements contained in the . Gets the value at the specified index as an O(1) operation. The zero-based index of the value to get. The value at the specified index. is less than 0.-or- is equal to or greater than . Returns an enumerator that iterates through the . A for the . Enumerates the elements of a . Gets the element at the current position of the enumerator. The element in the at the current position of the enumerator. Releases all resources used by the . Advances the enumerator to the next element of the . true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. ErrorLogger - Scheduler Listener Class ExecutingJobsManager - Job Listener Class. 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 thread pool when the scheduler determines that a has been triggered. James House Marko Lahma (.NET) 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. The cancellation instruction. 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. The cancellation instruction. Runs begin procedures on this instance. Completes the execution. if set to true [successful execution]. Passivates this instance. Default concrete implementation of . Random number generator int between 0 and maxValue Random number generator a positive integer Random number generator integer between minValue and maxValue 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) Initializes the class. 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 scheduler 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. 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. Get a List containing all of the internal s registered with the . Gets or sets the job factory. The job factory. 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 garbage 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. 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. 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. The cancellation instruction. 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. The cancellation instruction. 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 The cancellation instruction. 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 The cancellation instruction. 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 a List containing all of the s in the 's internal list. 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 a list containing all of the s in the 's internal list. Get the internal that has the given name. Notifies the job store job complete. Notifies the scheduler thread. Notifies the trigger listeners about fired trigger. The job execution context. The cancellation instruction. Notifies the trigger listeners about misfired trigger. The trigger. The cancellation instruction. Notifies the trigger listeners of completion. The job execution context. The instruction code to report to triggers. The cancellation instruction. Notifies the job listeners about job to be executed. The jec. The cancellation instruction. Notifies the job listeners that job execution was vetoed. The job execution context. The cancellation instruction. Notifies the job listeners that job was executed. The jec. The je. The cancellation instruction. Notifies the scheduler listeners about scheduler error. The MSG. The se. The cancellation instruction. Notifies the scheduler listeners about job that was scheduled. The trigger. The cancellation instruction. Notifies the scheduler listeners about job that was unscheduled. Notifies the scheduler listeners about finalized trigger. The trigger. The cancellation instruction. Notifies the scheduler listeners about paused trigger. The group. The cancellation instruction. Notifies the scheduler listeners about paused trigger. Notifies the scheduler listeners resumed trigger. The group. The cancellation instruction. Notifies the scheduler listeners resumed trigger. Notifies the scheduler listeners about paused job. Notifies the scheduler listeners about paused job. Notifies the scheduler listeners about resumed job. Notifies the scheduler listeners about resumed job. 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. The cancellation instruction. Obtains a lifetime service object to control the lifetime policy for this instance. Contains all of the resources (,, etc.) necessary to create a instance. James House Marko Lahma (.NET) 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. 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 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. 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) Gets the log. The log. Sets the idle wait time. The idle wait time. Gets the randomized idle wait time. The randomized idle wait time. Gets a value indicating whether this is paused. true if paused; otherwise, false. Construct a new for the given as a non-daemon with normal priority. 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 occurring 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 . 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. The cancellation instruction. Notifies the scheduler about finalized trigger. The trigger that has finalized. The cancellation instruction. Signals the scheduling change. 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. N number of weeks. 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 Serialization constructor. 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 Sets or gets the time zone for which the of this will be resolved. 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 cron expression string. The cron expression string. 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 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 be 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 The TimeOfDay for this trigger to start firing each day. the updated DailyTimeIntervalScheduleBuilder The TimeOfDay for this trigger to end firing each day. 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 TimeZone in which to base the schedule. the time-zone for the schedule the updated CalendarIntervalScheduleBuilder 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 Time Minute-Base Result Time
11:16:41 20 11:20:00
11:36:41 20 11:40:00
11:46:41 20 12:00:00
11:26:41 30 11:30:00
11:36:41 30 12:00:00
11:16:41 17 11:17:00
11:17:41 17 11:34:00
11:52:41 17 12:00:00
11:52:41 5 11:55:00
11:57:41 5 12:00:00
11:17:41 0 12:00:00
11:17:41 1 11:08:00
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 second. 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) 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) 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. 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. 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 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). Represents a job execution context which can be cancelled. Cancels the execution of the job. It is the responsibility of the job instance to observe the cancellation token if it can be cancelled. 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 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. Gets the expression summary. 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 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 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. Gets the time zone within which time calculations related to this trigger will be performed. If null, the system default TimeZone will be used. 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. 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 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 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 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 all the data from the given to the 's . the updated JobBuilder Replace the 's with the given . Instructs the whether or not concurrent execution of the job should be disallowed. Indicates whether or not concurrent execution of the job should be disallowed. The updated . If not explicitly set, concurrent execution of a job is only disallowed if either the itself, one of its ancestors or one of the interfaces that it implements, is annotated with . Instructs the whether or not job data should be re-stored when execution of the job completes. Indicates whether or not job data should be re-stored when execution of the job completes. The updated . If not explicitly set, job data is only re-stored if either the itself, one of its ancestors or one of the interfaces that it implements, is annotated with . 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) 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 should re-Execute the if a 'recovery' or 'fail-over' situation is encountered. If not explicitly set, the default value is . Get a that is configured to produce a identical to this one. 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. 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 . Returns the of the originally scheduled and now recovering job. When recovering a previously failed job execution this property returns the identity of the originally firing trigger. This recovering job will have been scheduled for the same firing time as the original job, and so is available via the property. The original firing time of the job can be accessed via the element of this job's . 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. 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. Returns the cancellation token which will be cancelled when the job cancellation has been requested via or . 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) Get the name of the . 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. 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. Matchers can be used in various API methods to select the entities that should be operated upon. James House 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 unsubstituted query The table prefix the scheduler name - no longer required, scheduler name is now a sql parameter The query, with proper table prefix substituted Replace the table prefix in a query by replacing any occurrences of "{0}" with the table prefix. The unsubstituted query The table prefix 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. The DbMetadata factory based on application configuration Initializes a new instance of the class. Name of the configuration section. The provider name prefix. Gets the properties parser. The properties parser Gets the supported provider names. The enumeration of the supported provider names Gets the database metadata associated to the specified provider name. Name of the provider. The metadata instance for the specified name 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 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 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. Gets the name of the parameter which includes the parameter prefix for this database. Name of the parameter. Base class for the DbMetadata Factory implementations Gets the supported provider names. The enumeration of the supported provider names Gets the database metadata associated to the specified provider name. Name of the provider. The metadata instance for the requested provider Concrete implementation of . Marko Lahma Parse metadata once. Initializes a new instance of the class. Name of the db provider. The connection string. Registers DB metadata information for given provider name. Generates the valid provider names information. Returns a new parameter object for binding values to parameter placeholders in SQL statements or Stored Procedure variables. A new The DbMetadata factory based on embedded assembly resource Initializes a new instance of the class. Name of the resource. Name of the property group (The prefix of the provider name). Gets the supported provider names. The enumeration of the supported provider names Gets the database metadata associated to the specified provider name. Name of the provider. The metadata instance for the specified name Data access provider interface. Marko Lahma Initializes the db provider implementation. Returns a new command object for executing SQL statements/Stored Procedures against the database. An new Returns a new connection object to communicate with the database. A new Connection string used to create connections. Shutdowns this instance. Unit of work for AdoJobStore operations. Marko Lahma Initializes a new instance of the class. The connection. 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) Initializes a new instance of the class. The table prefix. the scheduler name The SQL. The default SQL. The db provider. Gets the log. The log. 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. This Semaphore implementation does use the database. Gets or sets the table prefix. The table prefix. Initialization arguments holder for implementations. Whether simple should be used (for serialization safety). 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|... Delegate implementation for Firebird. Gets the select next trigger to acquire SQL clause. FireBird version with ROWS support. 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 the scheduled 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 transaction pair SQL to run Adds a parameter to . Command to add parameter to Parameter's name Parameter's value Parameter's data type Parameter's optional size 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 The cancellation instruction. Number of rows updated Get the names of all of the triggers that have misfired - according to the given 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. The cancellation instruction. 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. The cancellation instruction. 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 The cancellation instruction. An array of objects Delete all fired triggers. The DB Connection The cancellation instruction. The number of rows deleted Delete all fired triggers of the given instance. The DB Connection The instance id. The cancellation instruction. The number of rows deleted Insert the job detail record. The DB Connection The job to insert. The cancellation instruction. Number of rows inserted. Update the job detail record. The DB Connection. The job to update. The cancellation instruction. 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. The cancellation instruction. Delete the job detail record for the given job. The DB Connection The key identifying the job. The cancellation instruction. the number of rows deleted Check whether or not the given job exists. The DB Connection The key identifying the job. The cancellation instruction. true if the job exists, false otherwise Update the job data map for the given job. The DB Connection The job. The cancellation instruction. 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 cancellation instruction. The populated JobDetail object Select the total number of jobs stored. The DB Connection The cancellation instruction. the total number of jobs stored Select all of the job group names that are stored. The DB Connection. The cancellation instruction. an array of group names Select all of the jobs contained in a given group. The DB Connection The cancellation instruction. 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 cancellation instruction. The number of rows inserted Insert the blob trigger data. The DB Connection The trigger to insert The cancellation instruction. The number of rows inserted Update the base trigger data. the DB Connection The trigger. The state. The job detail. The cancellation instruction. the number of rows updated Update the blob trigger data. the DB Connection The trigger. The cancellation instruction. the number of rows updated Check whether or not a trigger exists. the DB Connection The key identifying the trigger. The cancellation instruction. 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 cancellation instruction. 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 The cancellation instruction. 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 The cancellation instruction. int the number of rows updated SQLException Update the given trigger to the given new state, if it is in the given old state and has the given next fire time. The DB connection The key identifying the trigger. The new state for the trigger The old state the trigger must be in The next fire time the trigger must have The cancellation instruction. int the number of rows updated Update all triggers in the given group to the given new state, if they are in one of the given old states. The DB connection The 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 cancellation instruction. 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. The cancellation instruction. 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 cancellation instruction. 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 cancellation instruction. the number of rows updated Delete the BLOB trigger data for a trigger. The DB Connection The key identifying the trigger. The cancellation instruction. The number of rows deleted Delete the base trigger data for a trigger. The DB Connection The key identifying the trigger. The cancellation instruction. the number of rows deleted Select the number of triggers associated with a given job. The DB Connection The key identifying the job. The cancellation instruction. the number of triggers for the given job Select the job to which the trigger is associated. Select the job to which the trigger is associated. Allow option to load actual job class or not. When case of remove, we do not need to load the type, which in many cases, it's no longer exists. Select the triggers for a job> The DB Connection The key identifying the job. The cancellation instruction. an array of objects associated with a given job. Select the triggers for a calendar The DB Connection. Name of the calendar. The cancellation instruction. An array of objects associated with a given job. Select a trigger. The DB Connection. The key identifying the trigger. The cancellation instruction. The object. Select a trigger's JobDataMap. The DB Connection. The key identifying the trigger. The cancellation instruction. The of the Trigger, never null, but possibly empty. Select a trigger's state value. The DB Connection. The key identifying the trigger. The cancellation instruction. The object. Select a triggers status (state and next fire time). The DB Connection. The key identifying the trigger. The cancellation instruction. A object, or null Select the total number of triggers stored. The DB Connection. The cancellation instruction. The total number of triggers stored. Select all of the trigger group names that are stored. The DB Connection. The cancellation instruction. An array of group names. Select all of the triggers contained in a given group. The DB Connection. The cancellation instruction. An array of trigger names. Select all of the triggers in a given state. The DB Connection. The state the triggers must be in. The cancellation instruction. An array of trigger s. Inserts the paused trigger group. The conn. Name of the group. The cancellation instruction. Deletes the paused trigger group. The conn. Name of the group. The cancellation instruction. Deletes all paused trigger groups. The conn. The cancellation instruction. Determines whether the specified trigger group is paused. The conn. Name of the group. The cancellation instruction. true if trigger group is paused; otherwise, false. Selects the paused trigger groups. The DB Connection. The cancellation instruction. Determines whether given trigger group already exists. The conn. Name of the group. The cancellation instruction. true if trigger group exists; otherwise, false. Insert a new calendar. The DB Connection. The name for the new calendar. The calendar. The cancellation instruction. The number of rows inserted. Update a calendar. The DB Connection. The name for the new calendar. The calendar. The cancellation instruction. The number of rows updated. Check whether or not a calendar exists. The DB Connection. The name of the calendar. The cancellation instruction. true if the trigger exists, false otherwise. Select a calendar. The DB Connection. The name of the calendar. The cancellation instruction. The Calendar. Check whether or not a calendar is referenced by any triggers. The DB Connection. The name of the calendar. The cancellation instruction. true if any triggers reference the calendar, false otherwise Delete a calendar. The DB Connection The name of the trigger. The cancellation instruction. The number of rows deleted. Select the total number of calendars stored. The DB Connection The cancellation instruction. The total number of calendars stored. Select all of the stored calendars. The DB Connection The cancellation instruction. 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. The cancellation instruction. 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 cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. A list of FiredTriggerRecord objects. Delete a fired trigger. The DB Connection The fired trigger entry to delete. The cancellation instruction. The number of rows deleted. Get the number instances of the identified job currently executing. The DB Connection The key identifying the job. The cancellation instruction. 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 cancellation instruction. The number of inserted rows. Delete a scheduler-instance state record. The DB Connection The instance id. The cancellation instruction. The number of deleted rows. Update a scheduler-instance state record. The DB Connection The instance id. The check in time. The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. Counts the misfired triggers in states. The conn. The state1. The ts. The cancellation instruction. Selects the misfired triggers in states. The conn. The state1. The ts. The count. The result list. The cancellation instruction. Clear (delete!) all scheduling data - all s, s s. The cancellation instruction. Exception class for when a driver delegate cannot be found for a given configuration, or lack thereof. 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. 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. 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. Read trigger state data from open data reader. 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) Instructs this job store whether connections should be automatically opened. 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. The cancellation instruction. Contains base functionality for ADO.NET-based JobStore implementations. Jeffrey Wescott James House Marko Lahma (.NET) Initializes a new instance of the class. Get or set the datasource name. Get or set the database connection manager. 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). Gets or sets the number of retries before an error is logged for recovery operations. 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. The time span by which a check-in must have missed its next-fire-time, in order for it to be considered "misfired" and thus other scheduler instances in a cluster can consider a "misfired" scheduler instance as failed or dead. 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. Settings this to false means isolation guarantees between job scheduling and trigger acquisition are entirely enforced by the database. Depending on the database and it's configuration this may cause unusual scheduling behaviors. 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. How often should the misfire handler check for misfires. Defaults to . Don't call set autocommit(false) on connections obtained from the DataSource. This can be helpful 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 misfired Triggers. Whether to perform a schema check on scheduler startup and try to determine if correct tables are in place. Defaults to true. Gets the connection and starts a new transaction. Get the driver delegate for DB operations. Get whether String-only properties will be handled in JobDataMaps. 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. Indicates whether this job store supports persistence. 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. The cancellation instruction. Returns true if the given JobGroup is paused. The cancellation instruction. Returns true if the given TriggerGroup is paused. The cancellation instruction. Stores the given . The to be stored. If , any existing in the with the same name & group should be over-written. The cancellation instruction. 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. The cancellation instruction. 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 cancellation instruction. 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. The cancellation instruction. if a with the given name & group was found and removed from the store. Retrieve the given . The key identifying the trigger. The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. if a with the given name was found and removed from the store. Retrieve the given . The name of the to be retrieved. The cancellation instruction. 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 The cancellation instruction. true if a calendar exists with the given identifier Determine whether a with the given identifier already exists within the scheduler. the identifier to check for The cancellation instruction. 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 The cancellation instruction. 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 The cancellation instruction. 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. Taken from https://github.com/aspnet/EntityFrameworkCore/blob/d59be61006d78d507dea07a9779c3c4103821ca3/src/EFCore.SqlServer/Storage/Internal/SqlServerTransientExceptionDetector.cs and merged with https://docs.microsoft.com/en-us/azure/sql-database/sql-database-develop-error-messages Copied from EFCore because it states "not intended to be used directly from your code" and we don't want EF leaking into Quartz. If the exception is identified as transient. 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). 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 execute after having acquired the given lock. The cancellation instruction. 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 execute after having acquired the given lock. The cancellation instruction. 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 acquired 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 acquire, for example "TRIGGER_ACCESS". If null, then no lock is acquired, but the lockCallback is still executed in a transaction. Callback to execute. The cancellation instruction. Exception class for when there is a failure obtaining or releasing a resource lock. James House 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 MySQL ADO.NET driver. Marko Lahma 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. This is a driver delegate for the PostgreSQL ADO.NET driver. Marko Lahma Gets the select next trigger to acquire SQL clause. MySQL version with LIMIT support. 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. 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. 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) Returns whether the trigger type can be handled by delegate. Returns database discriminator value for trigger type. 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. 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 This class extends to include the query string constants in use by the class. Jeffrey Wescott Marko Lahma (.NET) 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. Initializes the driver delegate. Clear (delete!) all scheduling data - all s, s s. 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. Build dictionary from serialized NameValueCollection. Select all of the jobs contained in a given group. The DB Connection. The cancellation instruction. An array of job names. Replace the table prefix in a query by replacing any occurrences of "{0}" with the table prefix. The unsubstituted query The query, with proper table prefix substituted Create a serialized version of an Object. the object to serialize Serialized object as byte array. 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 cancellation instruction. The deserialized object from the DataReader BLOB. Validates the persistence schema and returns the number of validates objects. 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 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. Insert the job detail record. Number of rows inserted. 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. Initializes a new instance of the class. Initializes a new instance of the class. The table prefix. the scheduler name The select with lock SQL. Maximum retry attempts, defaults to 3. Sleep between attempts, defaults to 1 second. 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. 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. Provides thread/resource using SQL Server memory-optimized tables. JBVyncent Marko Lahma Initializes a new instance of the class. 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) Constructor Constructor The base calendar. Serialization constructor. Gets or sets the days to be excluded by this calendar. Return true, if day is defined to be excluded. 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. 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) 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. 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 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. 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 . Returns the object representation of the cron expression that defines the dates and times this calendar excludes. Sets the cron expression for the calendar to a new value. The expression. 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)
The range starting time in millis. The range ending time in millis.
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. The range starting time in millis. The range ending time in millis.
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 base calendar for this calendar instance see BaseCalendar for more information on base calendar functionality. 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 base calendar for this calendar instance see BaseCalendar for more information on base calendar functionality. 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 base calendar for this calendar instance see BaseCalendar for more information on base calendar functionality. 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. Indicates whether the time range represents an inverted time range (see class description). true if invert time range; otherwise, false. 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, practically 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. 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) Returns a collection of dates representing the excluded days. Only the month, day and year of the returned dates are significant. 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. 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 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. Return true, if day is defined to be excluded. 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. 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. By default it excludes Saturday and Sunday. 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 Get the array with the week days. Setting will redefine the array of days excluded. The array must of size greater or equal 8. enum values like casted to int should be used as index (Sunday is the 0). A value of true is regarded as: exclude it. Return true, if wday is defined to be excluded. 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. 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 var threadPool = new DefaultThreadPool(); threadPool.MaxConcurrency = maxConcurrency; 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) Gets the log. The log. Gets the instance. The instance. Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.). Initializes a new instance of the class. Creates an in memory job store () The number of allowed concurrent running tasks. 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. 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. 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 maximum batch size of triggers, when acquiring them The time window for which it is allowed to "pre-acquire" triggers to fire 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 maximum batch size of triggers, when acquiring them The time window for which it is allowed to "pre-acquire" triggers to fire The scheduler exporter to use 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. Model for saving attribute's information in cache Used in key/value pair with as a value and show presence of attributes of specified type Return information about JobType as an instance The type for which information will be searched An object that describe specified type 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) 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 , SchedulerConstants.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 , SchedulerConstants.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 , SchedulerConstants.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. Create a with the given name, and group, and the given settings of all the other properties. The key of the job. Type of the job. The description given to the instance by its creator. if set to true, job will be durable. if set to true, job will request recovery. The data that is associated with the . Indicates whether or not concurrent exection of the job should be disallowed. Indicates whether or not job data should re-stored when execution of the job completes. is . 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 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. Gets a value indicating whether job data should be re-stored when execution of the job completes. if job data should be re-stored when execution of the job completes; otherwise, . Gets a value indicating whether concurrent execution of the job should be disallowed. if concurrent execution is disallowed; otherwise, . 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 . 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) Create a JobExecutionContext with the given context data. 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. 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. Returns the fire instance id. Matches using an AND operator on two Matcher operands. James House Marko Lahma (.NET) 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) 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. Create a GroupMatcher that matches all. 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. An abstract base class for some types of matchers. James House Marko Lahma (.NET) Operators available for comparing string values. 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) 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 Returns the name of the . Returns the instance Id of the . 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. Returns the of the . Calls the equivalent method on the 'proxied' . Calls the equivalent method 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 groups that are paused. 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. SchedulerException Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . 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' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method 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' . 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) Gets the singleton instance. The instance. Binds the specified sched. The sched. Removes the specified sched name. Name of the sched. Lookups the specified sched name. Lookups all. 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) Construct a instance to proxy the given instance. returns true if the given JobGroup is paused returns true if the given TriggerGroup is paused Returns the name of the . Returns the instance Id of the . 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. 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' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method on the 'proxied' . Calls the equivalent method 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 . If more than one instance of the identified job is currently executing, the cancellation token will be set 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 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.config". If file does not exist, default configuration 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. Alternatively, 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. Returns a handle to all known Schedulers (made by any StdSchedulerFactory instance.). 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.config" is loaded from the 'current working directory'. If that fails, then the "quartz.config" 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). 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) 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. Returns the previous time at which the fired. If the trigger has not yet fired, will be returned. 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. 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. 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. 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 . 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. 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. 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) Create a with no settings. Create a that will occur immediately, and repeat at 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 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 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 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 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. 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 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. 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. 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. Determines whether or not the will occur again. Validates whether the properties of the are valid for submission into a . 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)
Create a with no settings. The start-time will also be set to the current time, and the time zone will be set to 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 to 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 to 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 to 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 to 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 to 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 to 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. 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. Clones this instance. 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 repeatCount isn't yet satisfied. 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. 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 next time at which the will fire, after the given time. If the trigger will not fire after the given time, will be returned. 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. 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. 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 other than to specify the first day of firing. 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) 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 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 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 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 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 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. The time at which the should occur. the time at which the should quit repeating. Get 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 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. 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 determine if it is on a valid day of week. If so, simply return it unaltered, if not, advance to the next valid week day, and set the time of day to the start time of 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. 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. Determines whether or not the will occur again. Validates whether the properties of the are valid for submission into a . 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. Get a that is configured to produce a schedule identical to this trigger's schedule. 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) 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 given interval the given number of times. Create a that will occur immediately, and repeat at 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 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 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 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. Get or set the number of times the should repeat, after which it will be automatically deleted. Get or set 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. 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 . Supported interval units used by . Configuration interface that allows hooking strongly typed helpers for configuration. Configuration interface that allows hooking strongly typed helpers for configuration. Marker interface to to target outside configuration extensions better. 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. 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 The cancellation instruction. returns true if the given TriggerGroup is paused The cancellation instruction. 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. 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. 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 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. 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. 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 Shutdown(false). 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. The cancellation instruction. 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. Schedule the given job with the related set of triggers. If any of the given job 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. The cancellation instruction. 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. Add the given to the Scheduler - with no associated . The will be 'dormant' until it is scheduled with a , or is called for it. With the parameter set to true, a non-durable job can be stored. Once it is scheduled, it will resume normal non-durable behavior (i.e. be deleted once there are no remaining associated triggers). 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. The cancellation instruction. 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 . Reset the current state of the identified from to or as appropriate. Only affects triggers that are in state - if identified trigger is not in that state then the result is a no-op. The result will be the trigger returning to the normal, waiting to be fired state, unless the trigger's group has been paused, in which case it will go into the state. 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. The cancellation instruction. 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. The cancellation instruction. true if the Calendar was found and deleted. Get the instance with the given name. Get the names of all registered . Request the cancellation, within this Scheduler instance, of all currently executing instances of the identified . If more than one instance of the identified job is currently executing, the cancellation token will be set 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 cancellation, within this Scheduler instance, of the identified executing job 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. the unique identifier of the job instance to be interrupted (see ) The cancellation instruction. 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 The cancellation instruction. 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 The cancellation instruction. true if a Trigger exists with the given identifier Clears (deletes!) all scheduling data - all s, s s. Provides a mechanism for obtaining client-usable handles to instances. James House Marko Lahma (.NET) Returns handles to all known Schedulers (made by any SchedulerFactory within this app domain.). Returns a client-usable handle to a . Returns a handle to the Scheduler with the given name, if it exists. 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. The cancellation instruction. 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. The cancellation instruction. 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 has been interrupted. 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. The cancellation instruction. Called by the when a has been un-paused. Called by the when a has been un-paused. The job group. The cancellation instruction. 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 is starting. 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. 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 the number of times the should repeat, after which it will be automatically deleted. Get or set the time interval at which the should repeat. Get or set the number of times the has already fired. 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 trigger identical to this one. Get a that is configured to produce a schedule identical to this trigger's schedule. 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. 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. 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) Get the name of the . 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. The cancellation instruction. 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 vetoes 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. The cancellation instruction. 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. The cancellation instruction. Called by the when a has fired, it's associated has been executed, and it's method has been called. The that was fired. The that was passed to the 's method. The result of the call on the 's method. The cancellation instruction. 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); The key that identifies the job uniquely. 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 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. Instructs the whether or not concurrent execution of the job should be disallowed. Indicates whether or not concurrent execution of the job should be disallowed. The updated . If not explicitly set, concurrent execution of a job is only disallowed it either the itself, one of its ancestors or one of the interfaces that it implements, is annotated with . Instructs the whether or not job data should be re-stored when execution of the job completes. Indicates whether or not job data should be re-stored when execution of the job completes. The updated . If not explicitly set, job data is only re-stored it either the itself, one of its ancestors or one of the interfaces that it implements, is annotated with . 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 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 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 all the data from the given to the 's . the updated JobBuilder Replace the 's with the given . 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). Update since 2.4.2 - We keep an dirty flag for this map so that whenever you modify(add/delete) any of the entries, it will set to "true". However if you create new instance using an exising map with constructor, then the dirty flag will NOT be set to "true" until you modify the instance. James House Marko Lahma (.NET) Create an empty . Create with initial capacity. 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. 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. The hyphens are omitted from the . Adds the given value as a string version to the 's data map. The hyphens are omitted 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 date time offset. The key. Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . 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) 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. Create a JobExecutionException, with the 're-fire immediately' flag set to . Create a JobExecutionException, with the given cause. The cause. Create a JobExecutionException, with the given message. Initializes a new instance of the class. The message. The original cause. Create a JobExecutionException with the 're-fire immediately' flag set to the given value. Create a JobExecutionException with the given underlying exception, and the 're-fire immediately' flag set to the given value. Create a JobExecutionException 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. Gets or sets a value indicating whether to refire immediately. true if to refire immediately; otherwise, false. Creates and returns a string representation of the current exception. A string representation of the current exception. 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); 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. 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) 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 message 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) 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 name of the . 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 . The cancellation instruction. Called by the when a was about to be executed (an associated has occurred), but a vetoed it's execution. The cancellation instruction. Called by the after a has been executed, and be for the associated 's method has been called. The cancellation instruction. 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) 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 name of the . Get a handle to the instance that fired the . If the is being re-executed because of a 'recovery' situation, this method will return . Returns the of the originally scheduled and now recovering job. When recovering a previously failed job execution this property returns the identity of the originally firing trigger. This recovering job will have been scheduled for the same firing time as the original job, and so is available via the property. The original firing time of the job can be accessed via the element of this job's . 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 . 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. Get a handle to the instance that fired the . If the is being re-executed because of a 'recovery' situation, this method will return . Returns the of the originally scheduled and now recovering job. When recovering a previously failed job execution this property returns the identity of the originally firing trigger. This recovering job will have been scheduled for the same firing time as the original job, and so is available via the property. The original firing time of the job can be accessed via the element of this job's . 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 . 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. Sets the current log provider based on logger factory. The logger factory. Simple interface that represent a logger. Log a message the specified log level. The log level. The message function. An optional exception. Optional format parameters for the message generated by the messagefunc. true if the message was logged. Otherwise false. Note to implementers: the message func should not be called if the loglevel is not enabled so as not to incur performance penalties. To check IsEnabled call Log with only LogLevel and check the return value, no event will be written. Represents a way to get a Gets the specified named logger. Name of the logger. The logger reference. Opens a nested diagnostics context. Not supported in EntLib logging. The message to add to the diagnostics context. A disposable that when disposed removes the message from the context. Opens a mapped diagnostics context. Not supported in EntLib logging. A key. A value. Determines whether to call the destructor or not. A disposable that when disposed removes the map from the context. Extension methods for the interface. Check if the log level is enabled. The to check with. True if the log level is enabled; false otherwise. Check if the log level is enabled. The to check with. True if the log level is enabled; false otherwise. Check if the log level is enabled. The to check with. True if the log level is enabled; false otherwise. Check if the log level is enabled. The to check with. True if the log level is enabled; false otherwise. Check if the log level is enabled. The to check with. True if the log level is enabled; false otherwise. Check if the log level is enabled. The to check with. True if the log level is enabled; false otherwise. Logs a message at the log level, if enabled. The to use. The message function. Logs a message at the log level, if enabled. The to use. The message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The exception. The message. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The message. The exception. Logs an exception at the log level, if enabled. The to use. The message. The exception. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message function. Logs a message at the log level, if enabled. The to use. The message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The exception. The message. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The message. The exception. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message function. Logs a message at the log level, if enabled. The to use. The message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The exception. The message. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The message. The exception. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message function. Logs a message at the log level, if enabled. The to use. The message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The exception. The message. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The message. The exception. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message function. Logs a message at the log level, if enabled. The to use. The message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The exception. The message. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The message. The exception. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message function. Logs a message at the log level, if enabled. The to use. The message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The exception. The message. Optional format parameters for the message. Logs a message at the log level, if enabled. The to use. The message. Optional format parameters for the message. Logs an exception at the log level, if enabled. The to use. The message. The exception. Optional format parameters for the message. The log level. Trace Debug Info Warn Error Fatal Provides a mechanism to set the . Sets the current log provider. The log provider. Gets or sets a value indicating whether this is logging is disabled. true if logging is disabled; otherwise, false. Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is important that hook into this if you are using child libraries (especially ilmerged ones) that are using LibLog (or other logging abstraction) so you adapt and delegate to them. Gets a logger for the specified type. The type whose name will be used for the logger. An instance of Gets a logger for the current class. An instance of Gets a logger for the specified type. The type whose name will be used for the logger. If the type is null then this name will be used as the log name instead An instance of Gets a logger with the specified name. The name. An instance of Opens a nested diagnostics context. A message. An that closes context when disposed. Opens a mapped diagnostics context. A key. A value. A optional paramater to indicate message should be destructured. An that closes context when disposed. Exception thrown by LibLog. Initializes a new LibLogException with the specified message. The message Initializes a new LibLogException with the specified message and inner exception. The message. The inner exception. Some logging frameworks support structured logging, such as serilog. This will allow you to add names to structured data in a format string: For example: Log("Log message to {user}", user). This only works with serilog, but as the user of LibLog, you don't know if serilog is actually used. So, this class simulates that. it will replace any text in {curly braces} with an index number. "Log {message} to {user}" would turn into => "Log {0} to {1}". Then the format parameters are handled using regular .net string.Format. The message builder. The format parameters. Base class for specific log providers. Error message should initializing the log provider fail. Initialize an instance of the class by initializing the references to the nested and mapped diagnostics context-obtaining functions. Gets the specified named logger. Name of the logger. The logger reference. Opens a nested diagnostics context. Not supported in EntLib logging. The message to add to the diagnostics context. A disposable that when disposed removes the message from the context. Opens a mapped diagnostics context. Not supported in EntLib logging. A key. A value. Determines whether to call the destructor or not. A disposable that when disposed removes the map from the context. Returns the provider-specific method to open a nested diagnostics context. A provider-specific method to open a nested diagnostics context. Returns the provider-specific method to open a mapped diagnostics context. A provider-specific method to open a mapped diagnostics context. Delegate defining the signature of the method opening a nested diagnostics context. The message to add to the diagnostics context. A disposable that when disposed removes the message from the context. Delegate defining the signature of the method opening a mapped diagnostics context. A key. A value. Determines whether to call the destructor or not. A disposable that when disposed removes the map from the context. Finds a type using a type name and assembly name. The name of the type. The name of the assembly. The requested type or null if it was not found. Finds a type using a type name and a list of assembly names to search. The name of the type. A list of assembly names to search. The request type or null if it was not found. The form of the Loupe Log.Write method we're using Gets or sets a value indicating whether [provider is available override]. Used in tests. true if [provider is available override]; otherwise, false. Logger delegate. The log level The message function The exception The format parameters A boolean. 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 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. 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) Base class for implementors. 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. Helper to create common scheduler configurations. UNSTABLE API. Creates a new scheduler configuration to build desired setup. Base properties, if any. New scheduler builder instance that can be used to build configuration. UNSTABLE API. Creates a new scheduler configuration to build desired setup. Sets the instance id of the scheduler (must be unique within a cluster). Sets the instance name of the scheduler (must be unique within this server instance). Sets the instance id of the scheduler (must be unique within a cluster). Sets the instance name of the scheduler (must be unique within this server instance). Use memory store, which does not survive process restarts/crashes. Finalizes the configuration and builds the scheduler factoryh. Finalizes the configuration and builds the actual scheduler. Uses the default thread pool, which uses the default task scheduler. Uses the zero size thread pool, which is used only for database administration nodes. Uses the default thread pool, which uses the default task scheduler. Uses the default thread pool, which uses the default task scheduler. Uses a dedicated thread pool, which uses own threads instead of task scheduler shared pool. Makes this scheduler a proxy that calls another scheduler instance via remote invocation using the default mechanism (for full .NET Framework it's remoting, otherwise unsupported). Connection address Makes this scheduler a proxy that calls another scheduler instance via remote invocation using the typeof T proxy generator. Connection address The time span by which a trigger must have missed its next-fire-time, in order for it to be considered "misfired" and thus have its misfire instruction applied. The maximum number of triggers that a scheduler node is allowed to acquire (for firing) at once. Default value is 1. The larger the number, the more efficient firing is (in situations where there are very many triggers needing to be fired all at once) - but at the cost of possible imbalanced load between cluster nodes. The amount of time that a trigger is allowed to be acquired and fired ahead of its scheduled fire time. Defaults to TimeSpan.Zero. The larger the number, the more likely batch acquisition of triggers to fire will be able to select and fire more than 1 trigger at a time -at the cost of trigger schedule not being honored precisely (triggers may fire this amount early). This may be useful (for performance’s sake) in situations where the scheduler has very large numbers of triggers that need to be fired at or near the same time. Whether to interrupt (cancel) job execution on shutdown. Job needs to observe . Whether to interrupt (cancel) job execution on shutdown when wait for jobs to completed has is specified. Job needs to observe . The maximum number of thread pool tasks which can be executing in parallel. Set whether string-only properties will be handled in JobDataMaps. Set whether database schema validated will be tried during scheduler initialization. Optional feature and all providers do no support it. Sets the database retry interval. Defaults to 15 seconds. Make this instance is part of a cluster. Configures persistence to use generic . Valid provider name to configure driver details. Callback to refine configuration. Name of the database. Defaults to ''. Configure binary serialization, consider using JSON instead which requires extra package Quartz.Serialization.Json. Use custom serializer. Configures persistence to use custom ADO provider. Type of the inheritor. Valid provider name to configure driver details. Callback to refine configuration. Name of the database. Defaults to ''. Sets the frequency at which this instance "checks-in" with the other instances of the cluster. -- Affects the rate of detecting failed instances. Defaults to 7500 milliseconds. The time span by which a check-in must have missed its next-fire-time, in order for it to be considered "misfired" and thus other scheduler instances in a cluster can consider a "misfired" scheduler instance as failed or dead. Defaults to 7500 milliseconds. The prefix that should be pre-pended to all table names, defaults to QRTZ_. Standard connection driver specific connection string. Use named connection defined in application configuration file. Use named connection defined in application configuration file. Use given connection provider. Configures the scheduler to use System.Data.Sqlite data source provider. Configures the scheduler to use System.Data.Sqlite data source provider. Configures the scheduler to use Microsoft.Data.Sqlite data source provider. Configures the scheduler to use System.Data.Sqlite data source provider. 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 the name 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 the name 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 fire time of the original from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance. Note that this is the time the original firing actually occurred, which may be different from the scheduled fire time - as a trigger doesn't always fire exactly on time. A constant JobDataMap key that can be used to retrieve the scheduled fire time of the original Trigger from a recovery trigger's data map in the case of a job recovering after a failed scheduler instance. Note that this is the time the original firing was scheduled for, which may be different from the actual firing time - as a trigger doesn't always fire exactly on time. A special date time to check against when signaling scheduling change when the signaled fire date suggestion is actually irrelevant. We only want to signal the change. 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. 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. 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 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 thread pool 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 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.DefaultThreadPool' - with '8' threads Using job-store 'Quartz.Impl.JobStore' - which supports persistence.
            
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. Return a simple string representation of this object. 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 . Default object serialization strategy that uses under the hood. Marko Lahma 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. An implementation of the TaskSchedulingThreadPool which uses a custom task scheduler with a dedicated pool of threads reserved only for its own scheduling purposes Returns a QueuedTaskScheduler QueuedTaskScheduler with threadCount == MaxConcurrency An implementation of the TaskSchedulerThreadPool using the default task scheduler Returns TaskScheduler.Default TaskScheduler.Default Helper base class for host name lookup requiring instance id generators. Marko Lahma Generate the instance id for a The clusterwide unique instance id. 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) Generate the instance id for a The clusterwide unique instance id. Possible internal trigger states in RAMJobStore Waiting Acquired Executing Complete Paused Blocked Paused and Blocked Error 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 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) 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 property 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 property setter on the Job class. 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 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 with 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. Sets specific property to object, handles conversion and error conditions. Job instance to set property value to. Property name to set. Value to set. This class implements a that utilizes RAM as its storage device. As you should know, the ramification of this is that access is extremely 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. 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. 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. Returns whether this instance supports persistence. Clears (deletes!) all scheduling data - all s, s s. Store the given and . The to be stored. The to be stored. The cancellation instruction. Returns true if the given job group is paused. Job group name The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. 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 orphaned job details from scheduler if job becomes orphaned from removing the trigger. Replaces the trigger. The of the to be replaced. The new trigger. The cancellation instruction. 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 The cancellation instruction. true if a calendar exists with the given identifier Determine whether a with the given identifier already exists within the scheduler. the identifier to check for The cancellation instruction. 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 if a job exists with the given identifier; otherwise . Determine whether a with the given identifier already exists within the scheduler. triggerKey the identifier to check for The cancellation instruction. 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 . The cancellation instruction. 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. The cancellation instruction. if a with the given name was found and removed from the store. Retrieve the given . The name of the to be retrieved. The cancellation instruction. 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 job. This method should only be executed while holding the instance level lock. 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. 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. Sets the state of all triggers of job to specified state. This method should only be executed while holding the instance level lock. Peeks the triggers. A implementation that creates connection to remote scheduler using remoting. Gets or sets the remote scheduler address. The remote scheduler address. Returns a client proxy to a remote . 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. The default JobFactory used by Quartz - simply calls on the job class. 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 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 with 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. Allows the job factory to destroy/cleanup the job if needed. No-op when using SimpleJobFactory. A that simply calls . James House Marko Lahma (.NET) 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 . An IThreadPool implementation which schedules tasks using a TaskScheduler (provided by implementers) The TaskScheduler used to schedule tasks queued by users Implementers should override this to provide the TaskScheduler used by their thread pool. The TaskScheduler is provided through this factory method instead of as a property so that it can take respect MaxConcurrency changes prior to initialization time The default TaskScheduler the thread pool will use if users do not specify a different TaskScheduler prior to initialization The maximum number of thread pool tasks which can be executing in parallel The maximum number of thread pool tasks which can be executing in parallel This alias for MaximumConcurrency is meant to make config files previously used with SimpleThreadPool or CLRThreadPool work more directly. The number of tasks that can run concurrently in this thread pool Initializes the thread pool for use Note that after invoking this method, neither Determines the number of threads that are currently available in the pool; blocks until at least one is avaialble The number of currently available threads Schedules a task to run (using the task scheduler) as soon as concurrency rules allow it The action to be executed True if the task was successfully scheduled, false otherwise Removes a task from the 'running' list (if it exists there) and releases the concurrency semaphore so that more tasks may begin running The task which has completed Stops processing new tasks and optionally waits for currently running tasks to finish True to wait for currently executing tasks to finish; false otherwise 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 . 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 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. 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. Called by the QuartzScheduler before the thread pool is used, in order to give the it a chance to Initialize. Called by the QuartzScheduler to inform the thread pool 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 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. 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. 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 opportunity 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 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 with 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 Allows the job factory to destroy/cleanup the job if needed. 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. 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. Store the given and . The to be stored. The to be stored. The cancellation instruction. ObjectAlreadyExistsException returns true if the given JobGroup is paused The cancellation instruction. returns true if the given TriggerGroup is paused The cancellation instruction. Store the given . The to be stored. If , any existing in the with the same name and group should be over-written. The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. 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 The cancellation instruction. true if a calendar exists with the given identifier Determine whether a with the given identifier already exists within the scheduler. the identifier to check for The cancellation instruction. 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 The cancellation instruction. 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 . The cancellation instruction. 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. The cancellation instruction. if a with the given name was found and removed from the store. Retrieve the given . The name of the to be retrieved. The cancellation instruction. The desired , or null if there is no match. Get the number of s that are stored in the . The cancellation instruction. Get the number of s that are stored in the . The cancellation instruction. 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 ). The cancellation instruction. 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 . Reset the current state of the identified from to or as appropriate. Only affects triggers that are in state - if identified trigger is not in that state then the result is a no-op. The result will be the trigger returning to the normal, waiting to be fired state, unless the trigger's group has been paused, in which case it will go into the state. 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. The cancellation instruction. 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. 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. Should not be used by end users. 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 . 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. Internal interface for managing triggers. This interface should not be used by the Quartz client. 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. Client Proxy to a IRemotableQuartzScheduler Returns a client proxy to a remote . Service interface for scheduler exporters. Marko Lahma Binds (exports) scheduler to external context. Unbinds scheduler from external context. 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. The cancellation instruction. 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. 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. The cancellation instruction. Notifies the scheduler about finalized trigger. The trigger that has finalized. The cancellation instruction. Signals the scheduling change. Informs scheduler listeners about an exception that has occurred. 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 imbalance 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 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 thread pool is used, in order to give the it a chance to Initialize. Typically called by the . Called by the QuartzScheduler to inform the thread pool 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. 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 implementation a chance to initialize itself. Return the class with the given name. 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. 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 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). 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. Return a date with time of day reset to this object values. The millisecond value will be zero. 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 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 Compute the that is 1 second after the Nth firing of the given , taking the trigger'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 An exception that is thrown to indicate that cancellation failed. 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. 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) Get the class instance. an instance of this class 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. Gets the db provider. Name of the ds. 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. 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. Creates a new object that is a copy of the current instance. A new object that is a copy of this instance. Gets the value behind the specified key. The key. 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, 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 . 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). 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. 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. Manages a collection of IDbProviders, and provides transparent access to their database. Shuts down database connections from the data source with the given name, if applicable for the underlying provider. Get a database connection from the data source with the given name. Returns meta data for data source with the given name. Gets db provider for data source with the given name. Adds a connection provider to data source with the given name. 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 Construct a new key with the given name and group. the name the group Get the name portion of the key. the name Get the group portion of the key. the group Return the string representation of the key. The format will be: <group>.<name>. the string representation of the key Generic extension methods for objects. 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. 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) Gets the underlying properties. The underlying properties. 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. Environment access helpers that fail gracefully if under medium trust. Return whether we are currently running under Mono runtime. Retrieves the value of an environment variable from the current process. Retrieves all environment variable names and their values from the current process. Provides a TaskScheduler that provides control over the underlying threads utilized. Debug view for the QueuedTaskScheduler. The scheduler. Initializes the debug view. The scheduler. Gets all of the Tasks queued to the scheduler directly. Cancellation token used for disposal. The maximum allowed concurrency level of this scheduler. If custom threads are used, this represents the number of created threads. Whether we're processing tasks on the current thread. The threads used by the scheduler to process work. The collection of tasks to be executed on our custom threads. Initializes the scheduler. The number of threads to create and use for processing work items. Initializes the scheduler. The number of threads to create and use for processing work items. The name to use for each of the created threads. A Boolean value that indicates whether to use foreground threads instead of background. The priority to assign to each thread. The dispatch loop run by all threads in this scheduler. Gets the number of tasks currently scheduled. Queues a task to the scheduler. The task to be queued. Tries to execute a task synchronously on the current thread. The task to execute. Whether the task was previously queued. true if the task was executed; otherwise, false. Gets the tasks scheduled to this scheduler. An enumerable of all tasks queued to this scheduler. This does not include the tasks on sub-schedulers. Those will be retrieved by the debugger separately. Gets the maximum concurrency level to use when processing tasks. Initiates shutdown of the scheduler. 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. 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 . 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 . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified value from the . Try to retrieve the identified Nullable value from the . Try to retrieve the identified value from the . TimeZoneInfo.ConvertTime is not supported under mono TimeZoneInfo.GetUtcOffset(DateTimeOffset) is not supported under mono Tries to find time zone with given id, has ability do some fallbacks when necessary. System id of the time zone. Reports JobSchedulingDataProcessor validation exceptions. Chris Bonham Marko Lahma (.NET) Gets the validation exceptions. The validation exceptions. Returns the detail message string. 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. 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) Christian Krumm (.NET Bugfix) Constructor for XMLSchedulingDataProcessor. 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. If true (and is true) then any job/triggers encountered in this file that already exist is scheduler will be updated with start time relative to old trigger. Effectively new trigger's last fire time will be updated to old trigger's last fire time and trigger's next fire time will updated to be next from this last fire time. Gets the log. The log. Process the xml file in the default location (a file named "quartz_jobs.xml" in the current working directory). The cancellation instruction. Process the xml file named . meta data file name. The cancellation instruction. Process the xmlfile named with the given system ID. Name of the file. The system id. The cancellation instruction. Process the xmlfile named with the given system ID. The stream. The system id. The cancellation instruction. 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. The cancellation instruction. 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. The cancellation instruction. Process the xml file in the given location, and schedule all of the jobs defined within it. stream to read XML data from. The sched. The cancellation instruction. Schedules the given sets of jobs and triggers. The sched. The cancellation instruction. Adds a detected validation exception. The exception. Resets the number of detected validation exceptions. Throws a ValidationException if the number of validationExceptions detected is greater than zero. DTD validation exception. Helper class to map constant names to their values. Specifies that null is allowed as an input even if the corresponding type disallows it. Specifies that null is disallowed as an input even if the corresponding type allows it. Specifies that an output may be null even if the corresponding type disallows it. Specifies that an output will not be null even if the corresponding type allows it. Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. Initializes the attribute with the specified return value condition. The return value condition. If the method returns this value, the associated parameter may be null. Gets the return value condition. Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. Initializes the attribute with the specified return value condition. The return value condition. If the method returns this value, the associated parameter will not be null. Gets the return value condition. Specifies that the output will be non-null if the named parameter is non-null. Initializes the attribute with the associated parameter name. The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. Gets the associated parameter name. Applied to a method that will never return under any circumstance. Specifies that the method will not return if the associated Boolean parameter is passed the specified value. Initializes the attribute with the specified parameter value. The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to the associated parameter matches this value. Gets the condition parameter value.