不黑  

项目里使用到每月的第一天需要定时统计上一个月的某种数据,这个时候,我开始第一次知道任务调度这么一个专业词汇。也初次了解quartz这个任务调度框架。网上看了好几篇博文,有种quartz越看越难的感觉,直到看到注解版的。quartz是被spring很好支持的,再加上maven管理一下依赖,那就简直容易到简直..按照以下顺序,包你马上看到一个任务调度器的调度效果。

第一步:

  首先在applicationContext.xml文件添加一下内容       

   头部添加:http://www.springframework.org/schema/task
               http://www.springframework.org/schema/task/spring-task.xsd

 

         内容添加:

         <!-- 扫描定时作业调度包 -->

         <task:annotation-driven/>
         <context:component-scan base-package="com.lanshankeji.teachertrainingsystem.controller.common"/>   ----包扫描路径是你调度器所在的包路径

          

           pom.xml文件添加以下依赖  

           <!-- quratz -->
            <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
    </dependency>

  我在com.lanshankeji.teachertrainingsystem.controller.common路径下创建了一个如何的类:

  @Component
  public class MonthlyClearingController {
    @Autowired
    private TeacherInfoService teacherInfoService;

    @Autowired
    private DiagnosisRecordService diagnosisRecordService;// 问诊记录

    @Autowired
    private TeacherAnswerAchievementMonthConfigService answerAchievementMonthConfigService;

    @Autowired
    private TeacherIncomeInfoService teachIncomeInfoService;

    /**
    * 每月一号零点定时统计教师上个月薪酬 并写入收入详细表 -- teacher_income_info
    */
    @Scheduled(cron = "0 32 15 7 11 ?")  添加了这个注解,spring会扫描它的
    public void insertTeacherIncomeInfos() {
      List<TeacherIncomeInfo> teacherIncomeInfos = getAllTeacherIncomeInfosOfLastMonth();
      teachIncomeInfoService.insert(teacherIncomeInfos);
    }

           解析一下我的理解:   @Scheduled(cron = "0 32 15 7 11 ?") 

              @Scheduled这个注解会表示这是一个调度器,cron = "0 32 15 7 11 ?"是触发时间 就是11月7号15点32分0秒会执行insertTeacherIncomeInfos() 这个方法

               启动tomcat,你会发现在上面那个触发时间点事件会被触发执行!

              使用quart关键是四种类:

              Scheduler调度器
              Trigger触发器   Job任务   JobDetail任务详情

按照官网的写法是以上类是分开书写,解耦灵活,可以搭建复杂多样的任务调度;本文所尝试使用的注解式开发,是把这几种类集合在一块了,但原理本质上是一样的。
希望以上文章可以帮助你快速看到调度效果,增加干下去的信息,哈哈。
posted on 2017-11-07 22:09  不黑  阅读(319)  评论(0编辑  收藏  举报