Quartz Task Scheduling Framework
Simply put: it is at a specific time, to do the specified event, and then specific to an object to do
The first experience of quartz:
1.pom.xml file (Import jar package)
<dependencies><dependency><groupId>org.quartz-scheduler</groupId><artifactId> Quartz</artifactid><version>2.2.1</version></dependency><dependency><groupid >org.quartz-scheduler</groupid><artifactid>quartz-jobs</artifactid><version>2.2.1 </version></dependency><dependency><groupid>org.slf4j</groupid><artifactid >slf4j-log4j12</artifactid><version>1.7.12</version></dependency></dependencies >
2. Hello to create a task scheduler
public static void Main (string[] args) throws Exception {//Create timer Object Scheduler Scheduler = Stdschedulerfactory.getdefaultscheduler ();//Start Timer object Scheduler.start (); SYSTEM.OUT.PRINTLN ("1234");//Off Timer scheduler.shutdown ();}
Add triggers and work objects based on the above
Create a class to implement the Job method
public class Hellojob implements JOB {public void execute (jobexecutioncontext context) throws Jobexecutionexception { System.out.println ("test01");}}
Invoking a work object by using a trigger
public static void Main (string[] args) throws Exception {//Create timer Object Scheduler Scheduler = STDSCHEDULERFACTORY.GETDEFAULTSC Heduler ();//define a Work object Jobdetail job = Jobbuilder.newjob (Hellojob.class). Withidentity ("Job1", "group1"). Build ();// Define a trigger trigger Withschedule = Triggerbuilder.newtrigger (). Withidentity ("Trigger1", "group1"). Startnow (). Withschedule (Simpleschedulebuilder.repeatsecondlyforever (1)). build (); Scheduler.schedulejob (Job, withSchedule); /Turn on Timer object Scheduler.start ();//off Timer//Scheduler.shutdown ();}
Object Triggerbuilder Start task time Startnow immediately start startAt (date) Specify time start object Simpleschedulebuilder perform simple task recurrence repeatsecondly ... () How many seconds to repeat after repeatminutely ... () How many minutes after the repeathourly is repeatedly executed ... () Number of hours after repeated execution
The use of the above will result in the processing of time does not achieve the desired requirements
public static void Main (string[] args) throws Exception {//Create timer Object Scheduler Scheduler = STDSCHEDULERFACTORY.GETDEFAULTSC Heduler ();//define a Work object Jobdetail job = Jobbuilder.newjob (Hellojob.class). Withidentity ("Job1", "group1"). Build ();// Defines a trigger that needs to be triggered every second trigger Withschedule = Triggerbuilder.newtrigger (). Withidentity ("Trigger1", "group1"). Startnow (). Withschedule (cronschedulebuilder.cronschedule ("** * * * *?")). Build (); Scheduler.schedulejob (Job, withschedule);//Turn on Timer object Scheduler.start ();//Turn off Timer//Scheduler.shutdown ();}
Use the calendar mode for processing so it will be. We can achieve most of our needs for timed time.
What do those characters mean, from the number of digits?
1. Seconds seconds 2. Minutes min 3. Hours hours 4. Day-of-month the day of the month 5. Month 6. Day-of-week Days of the Week 7. Year (optional field) years (optional field)
Where wildcard characters are used to set (*,/,? , l,w,#)
wildcard character (' * ') |
Can be used to represent "each" possible value in a domain. So the * in the "month" field represents each month, The * in the Day-of-week field represents "Every day of the week". |
'/' character |
Represents the increment of the value, for example, if the minute field is placed in ' 0/15 ', it means "every 15 minutes, Starting from 0 ", if you use ' 3/20 ' in the part of the domain, it means" every 20 minutes in the hour, from the 3rd minute "3,23,43" or another form of the same. |
‘?‘ Character |
Can be used in day-of-month and Day-of-week domains, which are used to indicate "no value specified". This is useful if you need to specify a value for one or two fields without having to set up other domains. |
' L ' character |
Can be used in Day-of-month and Day-of-week, this character is the "last" shorthand, However, the meanings are different in two domains. For example, the "L" in the Day-of-month field represents the last day of the month, That is, 31st of January, non-leap year of February of 28th. If it is used in day-of-week, it means "7" or "SAT". However, if the character is followed by a different value in the Day-of-week field, it means "the most After the week XXX. " For example: "6L" or "Fril" represents the last Friday of this month. When you use the ' L ' option, The most important thing is not to specify a list or range of values, which can cause confusion. |
' W ' character |
Used to specify the closest number of weeks (specified in the Day-of-week field) for a distance to a given day. For example: If you specify "15W" for the Day-of-month field, it means "the nearest week from the month 15th" |
' # ' character |
Represents the first few weeks of the month. For example: "6#3" or "fri#3" in the Day-of-week domain Represents "The third Friday of the month". |
Quartz's Hello (Java)