代码:

  1. package com.smt.autorun;
  2.  
  3. import java.io.File;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.List;
  7.  
  8. import javax.servlet.ServletContextEvent;
  9. import javax.servlet.ServletContextListener;
  10.  
  11. import org.apache.log4j.Logger;
  12. import org.apache.poi.util.IOUtils;
  13. import org.ehcache.Cache;
  14. import org.ehcache.config.builders.CacheConfigurationBuilder;
  15. import org.ehcache.config.builders.CacheManagerBuilder;
  16. import org.ehcache.config.builders.ResourcePoolsBuilder;
  17. import org.quartz.JobDetail;
  18. import org.quartz.Scheduler;
  19. import org.quartz.SchedulerException;
  20. import org.quartz.SchedulerFactory;
  21. import org.quartz.Trigger;
  22. import org.quartz.TriggerBuilder;
  23. import org.quartz.impl.StdSchedulerFactory;
  24. import static org.quartz.CronScheduleBuilder.*;
  25. import static org.quartz.JobBuilder.newJob;
  26.  
  27. import com.smt.jobs.CheckJob;
  28. import com.smt.pojo.Table;
  29.  
  30. public class AutoRun implements ServletContextListener {
  31.  
  32. private static final Logger LOGGER = Logger.getLogger(AutoRun.class);
  33.  
  34. private Scheduler scheduler = null;
  35.  
  36. @Override
  37. public void contextDestroyed(ServletContextEvent arg0) {
  38. // TODO Auto-generated method stub
  39. LOGGER.info("end");
  40. EhcacheUtils.closeCache();
  41. try {
  42. scheduler.shutdown(true);
  43. } catch (SchedulerException e) {
  44. // TODO Auto-generated catch block
  45. e.printStackTrace();
  46. }
  47. }
  48.  
  49. @Override
  50. public void contextInitialized(ServletContextEvent arg0) {
  51. // TODO Auto-generated method stub
  52. LOGGER.info("begin");
  53. EhcacheUtils.openCache();
  54. Cache<String, Object> myCache = EhcacheUtils.cacheManager.createCache("myCache", CacheConfigurationBuilder
  55. .newCacheConfigurationBuilder(String.class, Object.class, ResourcePoolsBuilder.heap(100)).build());
  56. myCache.put("test", "test");
  57.  
  58. // 加载所有的pdm
  59. // PdmParser parser = new PdmParser();
  60. // List<Table> list = new ArrayList<Table>();
  61. // File file = new File("D:\\work\\powerdesigner");
  62. // File[] files = file.listFiles();
  63. // for(File f : files){
  64. // if(f.getName().contains(".pdm")){
  65. // Table[] tbs =
  66. // parser.parsePDM_VO("D:\\work\\powerdesigner\\"+f.getName(),f.getName().replaceAll(".pdm",
  67. // ""));
  68. // for(Table tb : tbs){
  69. // list.add(tb);
  70. // }
  71. // }
  72. // }
  73. // myCache.put("tables", list);
  74.  
  75. SchedulerFactory schedulerFactory = new StdSchedulerFactory();
  76. try {
  77. scheduler = schedulerFactory.getScheduler();
  78. JobDetail job = newJob(CheckJob.class) //定义Job类为HelloQuartz类,这是真正的执行逻辑所在
  79. .withIdentity("job1", "group2") //定义name/group
  80. .usingJobData("name", "quartz") //定义属性
  81. .build();
  82. Trigger trigger = TriggerBuilder.newTrigger()
  83. .withIdentity("myTrigger")
  84. .withSchedule(dailyAtHourAndMinute(19,00))
  85. .build();
  86. scheduler.scheduleJob(job, trigger);
  87. scheduler.start();
  88. } catch (SchedulerException e) {
  89. // TODO Auto-generated catch block
  90. e.printStackTrace();
  91. }
  92. }
  93.  
  94. }
  1. package com.smt.jobs;
  2.  
  3. import org.apache.log4j.Logger;
  4. import org.quartz.DisallowConcurrentExecution;
  5. import org.quartz.Job;
  6. import org.quartz.JobDetail;
  7. import org.quartz.JobExecutionContext;
  8. import org.quartz.JobExecutionException;
  9.  
  10. import com.smt.controller.DatabaseController;
  11.  
  12. public class CheckJob implements Job {
  13.  
  14. private static final Logger LOGGER = Logger.getLogger(CheckJob.class);
  15.  
  16. @Override
  17. public void execute(JobExecutionContext arg0) throws JobExecutionException {
  18. JobDetail detail = arg0.getJobDetail();
  19. //获取参数
  20. //String name = detail.getJobDataMap().getString("name");
  21. LOGGER.info("执行了!!!!!!!!!!!!!!!!!!!!!!!");
  22. }
  23.  
  24. }

pom.xml

  1. <dependency>
  2. <groupId>org.quartz-scheduler</groupId>
  3. <artifactId>quartz</artifactId>
  4. <version>2.2.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.quartz-scheduler</groupId>
  8. <artifactId>quartz-jobs</artifactId>
  9. <version>2.2.1</version>
  10. </dependency>

spring-quartz.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
  8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  9. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
  10.  
  11. <!-- =========JDBC版=========== -->
  12. <!--
  13. 持久化数据配置,需要添加quartz.properties
  14. -->
  15. <bean name="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  16. <property name="applicationContextSchedulerContextKey" value="applicationContextKey"/>
  17. <property name="configLocation" value="classpath:quartz.properties"/>
  18. </bean>
  19.  
  20. </beans>

quartz.properties:

  1. # Default Properties file for use by StdSchedulerFactory
  2. # to create a Quartz Scheduler Instance, if a different
  3. # properties file is not explicitly specified.
  4. #
  5.  
  6. #============================================================================
  7. # Configure Main Scheduler Properties
  8. #============================================================================
  9. org.quartz.scheduler.instanceName: ShinhoQuarze
  10. org.quartz.scheduler.instanceId = AUTO
  11.  
  12. org.quartz.scheduler.rmi.export: false
  13. org.quartz.scheduler.rmi.proxy: false
  14. org.quartz.scheduler.wrapJobExecutionInUserTransaction: false
  15. #============================================================================
  16. # Configure ThreadPool
  17. #============================================================================
  18. org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
  19. org.quartz.threadPool.threadCount: 2
  20. org.quartz.threadPool.threadPriority: 5
  21. org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true
  22.  
  23. org.quartz.jobStore.misfireThreshold: 60000
  24. #============================================================================
  25. # Configure JobStore
  26. #============================================================================
  27.  
  28. #default config
  29. #org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
  30. #\u6301\u4E45\u5316\u914D\u7F6E
  31. org.quartz.jobStore.class:org.quartz.impl.jdbcjobstore.JobStoreTX
  32. org.quartz.jobStore.driverDelegateClass:org.quartz.impl.jdbcjobstore.StdJDBCDelegate
  33. org.quartz.jobStore.useProperties:true
  34.  
  35. #============================================================================
  36. #havent cluster spring
  37. #============================================================================
  38. org.quartz.jobStore.isClustered = false
  39.  
  40. #\u6570\u636E\u5E93\u8868\u524D\u7F00
  41. org.quartz.jobStore.tablePrefix:qrtz_
  42. org.quartz.jobStore.dataSource:qzDS
  43.  
  44. #============================================================================
  45. # Configure Datasources
  46. #============================================================================
  47. #JDBC\u9A71\u52A8
  48. org.quartz.dataSource.qzDS.driver:com.mysql.jdbc.Driver
  49. org.quartz.dataSource.qzDS.URL:jdbc:mysql://localhost:3306/shbi
  50. org.quartz.dataSource.qzDS.user:root
  51. org.quartz.dataSource.qzDS.password:root
  52. org.quartz.dataSource.qzDS.maxConnection:10

我的Quartz笔记的更多相关文章

  1. SpringBoot中使用Quartz笔记

    Quartz可以用来做什么? Quartz是一个任务调度框架,可用来做定时任务. 吧啦吧啦......... 还是直接上代码. application.properties  配置文件. * * ? ...

  2. [Quartz笔记]玩转定时调度

    简介 Quartz是什么? Quartz是一个特性丰富的.开源的作业调度框架.它可以集成到任何Java应用. 使用它,你可以非常轻松的实现定时任务的调度执行. Quartz的应用场景 场景1:提醒和告 ...

  3. quartz笔记

    首先网络上的很多教程经常有错(信息过载了),其主要原因是版本发生了变化,例如quartz1和2之间还是有不少差别的,导致查找资料的人浪费了不少时间.所以无论教程如何写,都建议读者首先学习官网的教程,如 ...

  4. 5.17 Quartz笔记

    有用到构建者模式: builder---JobDetail相当于需要构建者构建出来的一个配件:JobDetail为Job实例提供了许多设置属性,以及JobDetaMap成员变量属性,它用来存储特定Jo ...

  5. Quartz.net 2.x 学习笔记03-使用反射加载定时任务

    将定时任务信息存储在XML文件中,使用反射加载定时任务 首先新建一个MVC的空站点,使用NuGet添加对Quartz.net和Common.Logging.Log4Net1213的引用,同时使用NuG ...

  6. Spring研磨分析、Quartz任务调度、Hibernate深入浅出系列文章笔记汇总

    Spring研磨分析.Quartz任务调度.Hibernate深入浅出系列文章笔记汇总 置顶2017年04月27日 10:46:45 阅读数:1213 这系列文章主要是对Spring.Quartz.H ...

  7. Quartz学习笔记:集群部署&高可用

    Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...

  8. Quartz学习笔记:基础知识

    Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...

  9. 作业调度框架 Quartz 学习笔记(三) -- Cron表达式 (转载)

    前面两篇说的是简单的触发器(SimpleTrigger) , SimpleTrigger 只能处理简单的事件出发,如果想灵活的进行任务的触发,就要请出 CronTrigger 这个重要人物了. Cro ...

随机推荐

  1. python自动化运维之路06

    python中面向对象编程 编程范式: 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条 ...

  2. iis 7 asp.net ajax post 请求字节过大报错问题解决办法

    遇到一个ajax post 提交新闻资讯类的文章,报 {"Message":"There was an error processing the request.&quo ...

  3. bzoj1621

    题解: 简单判断一下怎么分 如果分的话继续递归 代码: #include<bits/stdc++.h> using namespace std; int n,k; int js(int x ...

  4. windows 开发者神器 tc – total command和替代品

    作为开发者,windows上开发时,会运用一些神器,比如:total commander,搜索目录.查看文件.批量重命名等非常方便. tc是收费版的,有个免费的替代版本Just manager:htt ...

  5. PAT  说反话-加强版   (20分)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母 ...

  6. HDU 1592 Half of and a Half(大数)

    Half of and a Half Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  7. postman-进阶使用

    管理请求 保存请求-添加“打开百度首页请求” 设置请求方式为Get,地址为www.baidu.com.点击右侧保存按钮 在弹出的保存请求中设置保存的内容.Collections:百度,Request ...

  8. linux下忘记mysql密码的几种找回方法

    今天我们主要是讲一下关于linux忘记mysql密码处理方法,下面提供了5种linux忘记mysql密码找回方法哦.方法一(先进入root权限):# /etc/init.d/mysql stop# m ...

  9. https页面证书验证、加密过程简介

    1.服务器向CA机构获取证书(假设这个证书伪造不了),当浏览器首次请求服务器的时候,服务器返回证书给浏览器.(证书包含:公钥+申请者与颁发者的相关信息+签名) 2.浏览器得到证书后,开始验证证书的相关 ...

  10. Qemu编译qemu-system-arm

    /********************************************************************************* * Qemu编译qemu-syst ...