美文网首页程序员
SpringTask(Spring定时任务注解方式)

SpringTask(Spring定时任务注解方式)

作者: shaocong_mo | 来源:发表于2016-12-01 09:59 被阅读0次

    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分

    相关文章

      网友评论

        本文标题:SpringTask(Spring定时任务注解方式)

        本文链接:https://www.haomeiwen.com/subject/bzlxmttx.html