• quartz一次简单应用经历


    项目里使用到每月的第一天需要定时统计上一个月的某种数据,这个时候,我开始第一次知道任务调度这么一个专业词汇。也初次了解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任务详情

    按照官网的写法是以上类是分开书写,解耦灵活,可以搭建复杂多样的任务调度;本文所尝试使用的注解式开发,是把这几种类集合在一块了,但原理本质上是一样的。
    希望以上文章可以帮助你快速看到调度效果,增加干下去的信息,哈哈。
  • 相关阅读:
    今天的雪糕格外好吃!
    定了!对于本周四(7.16日)抽奖活动取消简要说明,新抽奖活动暂定下周三(7.22日)...
    你喜欢什么样的课堂?
    无题
    属于你们的“礼仪小课堂”
    红歌合唱之团结就是力量
    《此生未完成》痛句摘录(一)
    端午前夕的班级小游戏
    排序>插入排序 小强斋
    排序>交换排序 小强斋
  • 原文地址:https://www.cnblogs.com/fzczailushang/p/7801406.html
Copyright © 2020-2023  润新知