Reproduced:
Spring config file xmlns join
xmlns:task= "Http://www.springframework.org/schema/task"
Join in Xsi:schemalocation
Http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd "
Configuration of Spring Scan annotations
<base-package/>
Task Scan Annotations
<ID= "executor" pool-size<id= "scheduler" pool-size<executor = "Executor" scheduler/>
Code implementation:
Note @scheduled can be added as a trigger source to a method, for example, the following method will be executed at a fixed delay time of 5 seconds, which is the completion time of one of the above calling tasks, and after the previous task completes, 5s executes again:
@Scheduled (Fixeddelay =)void dosomething () { //Something that should execute periodically }
If you need to perform at a fixed rate, as long as you change the name of the property specified in the annotation to Fixedrate, the following method invokes the execution at a fixed rate of 5s, which is the baseline of the above task start time, and is called again after the previous task begins execution 5s:
@Scheduled (fixedrate =)void dosomething () { //Something that should execute Periodically}
If a simple recurring schedule cannot be met, the CRON expression provides the possibility
PackageCom.imwoniu.task;Import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.component;@ Componentpublic class Taskdemo {@Scheduled (cron = "0 0 2 * *?") //daily two o'clock in the morning execute void Dosomethingwith () {Logger.info ("scheduled task start ..." long begin = System.currenttimemillis (); // Perform database operation Oh ... long end = System.currenttimemillis (); Logger.info (" Scheduled Tasks end, total time: ["+ (End-begin)/1000 +"] seconds "
The following is excerpted from http://biaoming.iteye.com/blog/39532
A cron expression has at least 6 (or possibly 7) time elements that have a space separation.
sequentially seconds (0~59)
Minutes (0~59)
Hours (0~23)
Days (months) (0~31, but you need to consider the number of days of your month)
Month (0~11)
Days (weeks) (1~7 1=sun or Sun,mon,tue,wed,thu,fri,sat)
7. Year (1970-2099)
Each of these elements can be a value (such as 6), a continuous interval (9-12), a time interval (8-18/4) (/= every 4 hours), a list (1,3,5), and a wildcard character. Because the "date in the month" and "date in the week" are mutually exclusive, one of the two elements must be set.
0 0 10,14,16 * *? 10 o'clock in the morning, 2 o'clock in the afternoon, 4 O ' Day
0 0/30 9-17 * *? Every half hour for nine to five working hours
0 0 12? * WED means every Wednesday noon 12 o'clock
"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
Some sub-expressions can contain ranges or lists
For example: subexpression ( Day (week)) can be "Mon-fri", "Mon,wed,fri", "Mon-wed,sat"
The "*" character represents all possible values
Therefore, "*" in the sub-expression ( month ) represents the meaning of each month, "*" in the subexpression ( Day (week)) represents every day of the week
The "/" character is used to specify the increment of the numeric value
For example: "0/15" in sub-expressions (minutes) means starting from the No. 0 minute, every 15 minutes
"3/20" in the sub-expression (minutes) means that every 20 minutes (it is the same as "3,23,43") starting from the 3rd minute
“? "Character is used only for days (months) and days (weeks) of two sub-expressions, indicating that no value is specified
When one of the 2 sub-expressions is assigned a value, in order to avoid a conflict, you need to set the value of another subexpression to "? ”
The "L" character is used only for days (months) and days (weeks) of two sub-expressions, which is the abbreviation for the word "last"
But it has a different meaning in two sub-expressions.
In the day (month) subexpression, "L" represents the last day of the one-month
In the day (week) Self-expression, "L" represents the last day of one weeks, the SAT
If there is something specific before "L", it has other meanings.
For example: "6L" means the 6th day of the month, and "Fril" means the last Friday of the month.
Note: When using the "L" parameter, do not specify a list or range, as this can cause problems
Special characters allowed for field allowed values
秒 |
|
0-59 |
|
, - * / |
分 |
|
0-59 |
|
, - * / |
小时 |
|
0-23 |
|
, - * / |
日期 |
|
1-31 |
|
, - * ? / L W C |
月份 |
|
1-12 或者 JAN-DEC |
|
, - * / |
星期 |
|
1-7 或者 SUN-SAT |
|
, - * ? / L C # |
年(可选) |
|
留空, 1970-2099 |
|
, - * / |
Implement timed tasks using Spring's @scheduled