1.Spring配置文件
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd"
<!-- 扫描路径 -->
<context:component-scan base-package="com.dico.sys.utils.spider"></context:component-scan>
<!-- 开启这个配置,spring才能识别@Scheduled注解 -->
<task:scheduler id="qbScheduler" pool-size="10"/>
<task:annotation-driven scheduler="qbScheduler" mode="proxy"></task:annotation-driven>
2.任务类
@Component("autoSpider")
public class AutoSpider {
//每5秒执行一次
//cron表达式
@Scheduled(cron = "0/5 * * * * ?")
public void say(){
System.out.println("autoSpider start");
System.out.println("---------running------------");
System.out.println("autoSpider end");
}
}
3.cron表达式说明
cron表达式通常用于配置计划任务的触发时间。一个cron表达式是一个由六个或者七个子表达式(字段)组成的字符串。而子表达式或者称为字段之间用空格隔开。
字段 |
是否必须 |
允许的值 |
允许的特殊字符 |
秒(seconds) |
Y |
0-59 |
, - * / |
分(minutes) |
Y |
0-59 |
, - * / |
时(hours) |
Y |
0-23 |
, - * / |
天(day of month) |
Y |
1-31 |
, - * /L W C |
月(month) |
Y |
0-11 或者 JAN-DEC |
, - * / |
星期(day of week) |
Y |
1-7 或者 SUN-SAT |
, - * /?L C# |
年(year) |
N |
1970-2099或者不写 |
, - * / |
3.1特殊字符说明
- “,”表示and
- “-”表示一个区间段,即开始到结束
- “*”表示全选,即用汉语中的“每”或者英文中的every/each/per
- “/”表示一个区间段的时长,例如放在第一位“/10”则表示每10秒
- “L”表示最后,即Last
- “W”表示weekday,即工作日也就是周一到周五
- “C”表示canlendar,即日历,例如“1C”在星期位上就是包括日历上的星期日
- “#”表示序列,如“#2”表示第二
3.2例子
表达式 |
表达的时间 |
0 0 12 * * ? |
每天中午12点 |
0 15 10 ? * * |
每天早上10点15分 |
0 15 10 * * ? |
每天早上10点15分 |
0 15 10 * * ? * |
每天早上10点15分 |
0 15 10 * * ? 2005 |
2005年的每天早上10点15分 |
0 * 14 * * ? |
每天下午14点钟开始到14点59分结束这么一个时间段 |
0 0/5 14 * * ? |
每天下午14点到14点55分之间每5分钟触发一次 |
0 0/5 14,18 * * ? |
每天下午14点到14点55分 和18点到18点55分之间 每5分钟触发一次 |
0 0-5 14 * * ? |
每天下午14点开始到14点05结束 |
0 10,44 14 ? 3 WED |
每年三月份的每个周三下午14点10分和14点44各一次 |
0 15 10 ? * MON-FRI |
每个工作日的10点15分 |
0 15 10 15 * ? |
每个月15号的上午10点15分 |
0 15 10 L * ? |
每个月最后一天的10点15分 |
0 15 10 ? * 6L |
每个月最后一个周五的10点15分 |
0 15 10 ? * 6L 2002-2005 |
2002年到2005年每个月最后一个周五的10点15分 |
0 15 10 ? * 6#3 |
每个月的第三个周五的10点15分 |
0 0 12 1/5 * ? |
每个月从第一天开始每隔5天中午12点触发一次 |
0 11 11 11 11 ? |
每年11月11号11点11分 |
网友评论