淘先锋技术网

首页 1 2 3 4 5 6 7

1.spring-config.xml中的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context ="http://www.springframework.org/schema/context"
       xmlns:task="http://www.springframework.org/schema/task"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                           http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
    <!--自动扫描器-->
    <context:component-scan base-package="com.apesource"/>

    <!--任务注解驱动:@Scheduled注解所标记的任务方法,按照预设时间规则来调度执行-->
    <task:annotation-driven/>
</beans>

2.组件的设置。

@Component
public class SendSmsTask {
    private List<String> list =Arrays.asList("123456789","+++++++++","---------","asdfrvgtb","=========");

    private static int count = 0;

    @Scheduled(cron = "3/7 * 14 12 8 ?")
    public void sendphonenamber(){
        System.out.println(list.get(count++));

        if(count==list.size()){
            count = 0;
        }
    }
}

3.@Scheduled注解中的规则:

  • @Scheduled(cron = “秒 分 时 日 月 周”)之间用空格隔开
  • ‘?’ 表示占位符
  • ’ * ’ 表示每,比如:"* 56 14 12 8 ?" 表示8月12日14时56分的每一秒钟都进行一次任务调度
  • ‘-’ 表示区间,比如:"14-34 56 14 12 8 ?"表示8月12日14时56分的14秒到34秒每一秒钟都执行一次。
  • ‘,’ 表示列表值,比如:"4,14,24,34,44,54 56 14 12 8 ?"表示8月12日14时56分的第4秒,第14秒,第24秒,第34秒,第44秒,第54秒。执行一次
  • ‘/’ 表示相隔,比如:"4/7 56 14 12 8 ?"表示8月12日14时56分4秒开始每7秒执行一次调度
  • 其他,比如:“0 0 0 L * ?” 表示每月最后一天的0点0分0秒执行一次调度。