• 测试代码
    了解作者
  • Java
    开发工具
  • 916KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2017-10-21 18:01
    上传日期
任务调度,极好的的定时器框架,可以直接拿去应用到实际项目中去。
quartJob.zip
内容介绍
package com.kay.quartz.manager; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.impl.StdSchedulerFactory; import com.kay.quartz.QuartzJob0; import com.kay.quartz.QuartzJob1; public class Test { public static void main(String[] args) throws Exception { // 调用手动设置的job // runJobByHand() ; // getJobFromDb(); getCornJobFromDb(); } /** * 1.手动新建任务 * @throws Exception */ public static void runJobByHand() throws Exception { // 新建 scheduler Scheduler scheduler = new StdSchedulerFactory().getScheduler(); //开启 scheduler scheduler.start(); JobDetail jobDetail = new JobDetail("helloWorldJob", Scheduler.DEFAULT_GROUP, QuartzJob0.class); //传递参数 jobDetail.getJobDataMap().put("para0", "value0"); Trigger trigger = new SimpleTrigger("simpleTrigger", Scheduler.DEFAULT_GROUP, new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, 1000); scheduler.scheduleJob(jobDetail, trigger); scheduler.getCurrentlyExecutingJobs(); //============================================== JobDetail jobDetail1 = new JobDetail("helloWorldJob1", Scheduler.DEFAULT_GROUP, QuartzJob1.class); //传递参数 jobDetail1.getJobDataMap().put("para1", "value1"); Trigger trigger1 = new SimpleTrigger("simpleTrigger1", Scheduler.DEFAULT_GROUP, new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, 1000); scheduler.scheduleJob(jobDetail1, trigger1); } /** * 2.通过读取数据库配置信息来生成一般的调度任务 * @throws Exception */ public static void getJobFromDb() throws Exception { Statement st = getStatement(); String sql = "select * from quartz"; ResultSet rs = st.executeQuery(sql); while (rs.next()) { //获取jobClass String jobClass = rs.getString(2); //获取jobName String jobName = rs.getString(3); //获取groupName String groupName = rs.getString(4); //获取param String param = rs.getString(5); //获取triggerName String triggerName = rs.getString(6); //获取startTime Date startTime = rs.getDate(7); //获取repeatCount int repeatCount = rs.getInt(8); //获取endTime Date endTime = rs.getDate(9); //获取interVal int interVal = rs.getInt(10); // 新建 scheduler Scheduler scheduler = new StdSchedulerFactory().getScheduler(); //开启 scheduler scheduler.start(); JobDetail jobDetail = new JobDetail(jobName,groupName,Class.forName(jobClass)); //传递参数 jobDetail.getJobDataMap().put("param", param); Trigger trigger = new SimpleTrigger(triggerName, groupName,startTime, endTime, repeatCount,interVal); scheduler.scheduleJob(jobDetail, trigger); scheduler.getCurrentlyExecutingJobs(); } } /** * 3.通过读取数据库配置信息来执行调度任务(使用corn表达方式) * @throws Exception */ public static void getCornJobFromDb() throws Exception { //获取数据库的数据,并保存为双层集合,然后放到pageContext中 //这样与使用dao和servlet得到的,放到request中的方式是一致的 Statement st = getStatement(); String sql = "select * from quartz_cron"; ResultSet rs = st.executeQuery(sql); while (rs.next()) { //获取jobClass String jobClass = rs.getString(2); //获取jobName String jobName = rs.getString(3); //获取groupName String groupName = rs.getString(4); //获取param String param = rs.getString(5); //获取triggerName String triggerName = rs.getString(6); String cornExpress = rs.getString(7); // 新建 scheduler Scheduler scheduler = new StdSchedulerFactory().getScheduler(); //开启 scheduler scheduler.start(); JobDetail jobDetail = new JobDetail(jobName,groupName,Class.forName(jobClass)); //传递参数 jobDetail.getJobDataMap().put("param", param); CronTrigger cronTrigger = new CronTrigger(triggerName, groupName, cornExpress); scheduler.scheduleJob(jobDetail, cronTrigger); scheduler.getCurrentlyExecutingJobs(); } } public static Statement getStatement() throws Exception { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"; Connection cn = DriverManager.getConnection(url, "root", "test"); Statement st = cn.createStatement(); return st; } }
评论
    相关推荐
    • quartz定时任务调度
      基于web开发的quartz定时任务调度整合配置源码....
    • xxl-job 任务调度源码
      xxl-job 任务调度源码包,试了,可以打开管理页面。执行tables_xxl_job.sql 到mysql数据库,配置数据信息就可以打开任务调度主页面。运行spring-boot application,打开页面像:...
    • 单头c++ 11任务调度程序
      单头c++ 11任务调度程序-源码
    • java任务调度工具
      java项目中需要自行编辑写入的定时任务太多时,不要管理,这是一个任务调度项目(包含源码),可视化页面操作。
    • 任务调度源码.net
      quartz.net 任务调度源码 ,使用quartz。net开源组件,很是不错,具体说明看代码和博客园文章
    • 新一代分布式大数据工作流任务调度系统DolphinScheduler源码分析
      1、课程名字:新一代分布式大数据工作流任务调度系统DolphinScheduler源码分析,2021年8月新课,提供代码课件下载! 2、课程概述: 本课程会带大家深入DolphinScheduler框架源码,包括设计的思想和技术都会讲解,...
    • SpringMvc自动任务调度之task实现项目源码
      但如果只是简单的跑个任务其实spring升级到3后已经自带任务调度器了,相比之下Spring task无论是理解还是使用都简单很多。但是Quartz有线程和线程管理以及集群等高级特性,所以大家可以自行选择了。不过一般情况下,...
    • asp.net任务调度
      简单任务调度平台,用于.net dll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等。 平台基于quartz.net进行任务调度功能开发,采用C#代码编写, 支持corn表达式和第...
    • UCOSII实验1-任务调度.zip
      基于stm32f103开发平台实现的ucosii系统任务调度源码
    • android从bootloader到launcher启动流程整理
      讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ,清晰熟悉android 启动流程