public class Quartzjob {public void work () {System.out.println (Spring Quartz Task Dispatch 1 is called!) "); The business logic of the timed call}} public class quartzjob2{public void work () {System.out.println (Spring Quartz The Task Scheduler 2 is called! "); Business logic for timed calls}}
<?xml version= "1.0" encoding= "UTF-8"?><!-- - Application context Definition for jpetstore ' s business layer. - contains bean references to the transaction manager and to the daos in - dataAccessContext-local/jta.xml (See web.xml ' s " Contextconfiglocation "). --><beans xmlns=" Http://www.springframework.org/schema/beans " xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:aop= "http// Www.springframework.org/schema/aop " xmlns:tx=" Http://www.springframework.org/schema/tx " xsi:schemalocation= "http://www.springframework.org/schema/beans http:// www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/ Schema/tx/spring-tx-2.0.xsd "> <!-- work class to invoke -- > <bean id= "Quartzjob" class= " Com.writchie.quartz.QuartzJob "></bean> <bean id= "Quartzjobtwo" class= "Com.writchie.quartz.QuartzJobTwo" ></bean> <!-- can continue to add new tasks --> <!-- End of work class to invoke --> <!-- Define methods for calling objects and calling objects --> <bean id= "Jobtask" class= "ORG.SPRINGFRamework.scheduling.quartz.MethodInvokingJobDetailFactoryBean "> <!-- called classes --> <property name= "TargetObject" > <ref bean= " Quartzjob "/> </ property> <!-- Calling methods in a class --> < Property name= "Targetmethod" > <value>work</value> </property> </bean> <bean id= "Jobtask2" class= " Org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean "> <!-- called classes --> <property name= "TargetObject" > <ref bean= "Quartzjobtwo"/> </property> <!-- methods in calling classes --> <property name= "Targetmethod" > <value>work</value> </property> </bean> <!-- can continue to add new --> <!-- Method end for defining call objects and calling objects --> <!-- Define trigger time --> <bean id= "Dotime" class= "Org.springframework.scheduling.quartz.CronTriggerBean" > <property name= " Jobdetail "> <ref beAn= "Jobtask"/> </ property> <!-- Cron expressions are defined here to always trigger execution tasks --> <property name= "Cronexpression" > <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value> </property> </bean> <bean id= "DoTime2" class= "Org.springframework.scheduling.quartz.CronTriggerBean" > <property name= "Jobdetail" > <ref bean= " Jobtask2 "/> </ property> <!-- Cron Expressions here defines the 13:15 trigger--> from Monday to Sunday <property name= "Cronexpression" > <value>0 15 13 ? * SUN-SAT</value> </property> </bean> <!-- can continue to add new --> <!-- Define trigger time end --> <!-- Total Management class If lazy-init= ' false ' Then the container starts executing the scheduler --> <bean id= "Startquertz" lazy-init= "false" autowire= "no" class= " Org.springframework.scheduling.quartz.SchedulerFactoryBean "> <property name= "Triggers" > <list> <ref bean= "Dotime"/> <reF bean= "DoTime2"/> <!-- can continue to add new --> </list> </property> </bean> <!-- Total Management class End --> </beans> test procedure import org.springframework.context.applicationcontext; import Org.springframework.context.support.classpathxmlapplicationcontext; public class quartzservice { public static void main (String[] args) { SYSTEM.OUT.PRINTLN ("Test Task Scheduler starts ..."); &NBSP;&NBSP;&NBSP;&NBSP;APPLICATIONCONTEXT&NBSP;CONTEXT&NBSP;=&NBSP;NEW&NBsp Classpathxmlapplicationcontext ( "Applicationcontext.xml"); // if the Startquertz bean lazy-init is set to false in the configuration file, it is not instantiated // context.getbean ("Startquertz"); system.out.print ("Test task dispatch ends!\n"); } }
If it is a Web program, you can load the spring configuration file on XML. Starts when the project starts.
About cron Expressions (resources):
The Cron expression consists of the following 7 fields:
Seconds
Score of
Hours
Date within the month
Month
Week Date
Year (optional field)
Special characters
Cron triggers take advantage of a series of special characters, as follows:
The backslash (/) character represents the increment value. For example, in the seconds field, "5/15" represents the beginning of the 5th second, once every 15 seconds.
The question mark (?) character and the letter L character are available only in the date and week date fields within the month. A question mark indicates that the field does not contain a specific value. Therefore, if you specify a date within a month, you can insert "?" in the Date field within the week, which means that the date value in the week does not matter. The letter L character is the last abbreviation. Placed in the Month Date field, indicates that the schedule is scheduled to be executed on the last day of the month. In the week Date field, if "L" exists alone, it is equal to "7", otherwise it represents the last instance of the week date within the month. So "0L" means that it is scheduled to be executed on the last Sunday of the month.
The letter (W) character in the Date field in the month arranges the execution at the working day closest to the specified value. Placing "1W" in the Month Date field indicates that the execution is scheduled for the first business day of the month.
The pound sign (#) character specifies a specific weekday instance for a given month. Put "mon#2" in the week Date field, indicating that the task is scheduled for the second Monday of the month.
The asterisk (*) character is a wildcard character that indicates that the field can accept any possible value.
Special characters allowed for field allowed values
Seconds 0-59,-*/
Sub 0-59,-*/
Hours 0-23,-*/
Date 1-31,-*? /L W C
Month 1-12 or JAN-DEC,-*/
Week 1-7 or Sun-sat,-*? /L C #
Year (optional) leave blank, 1970-2099,-*/Expression meaning
"0 0 12 * *?" trigger 12 o'clock noon every day.
"0 15 10?" * * "trigger 10:15 every day"
"0 15 10 * *?" Daily 10:15 Trigger
"0 15 10 * *?" * "10:15 per day" trigger
"0 15 10 * *?" 2005 "2005-year daily 10:15 Trigger
"0 * 14 * *?" triggers every 1 minutes from 2 o'clock in the afternoon to 2:59 daily
"0 0/5 14 * *?" triggers every 5 minutes from 2 o'clock in the afternoon to 2:55 daily
"0 0/5 14,18 * *?" triggers every 5 minutes from 2 o'clock in the afternoon to 2:55 daily and from 6 o'clock in the afternoon to 6:55
"0 0-5 14 * *?" triggers every 1 minutes from 2 o'clock in the afternoon to 2:05 daily
"0 10,44 14?" 3 WED "2:10 and 2:44 triggers in Wednesday of every March
"0 15 10?" * Mon-fri "Monday to Friday 10:15 trigger
"0 15 10 15 *?" 15th 10:15 per month
"0 L *?" 10:15 on the last day of the month
"0 15 10?" * 6L "Last month of Friday 10:15 Trigger
"0 15 10?" * 6L 2002-2005 "2002 to 2005 the last of the monthly Friday 10:15 trigger
"0 15 10?" * 6#3 "Monthly third Friday 10:15 trigger
Every morning at 6.
0 6 * * *
Every two hours
0 */2 * * *
Every two hours between 11 o'clock and 8 in the morning, eight in the morning.
0 23-7/2,8 * * *
Every month, number 4th and Monday to Sunday, three a.m., 11.
0 11 4 * 1-3
January 1 morning, 4.
0 4 1 1 *
Quartz combined with spring multi-task timed call