`
zjnbshifox
  • 浏览: 316141 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Quartz初试

    博客分类:
  • Java
阅读更多

最近需要用到Quartz,网上找了一些文章大多数都是E文,虽然E文不好,但还是将就写了一个

/*
 * Created on 2005-4-25
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package fox.rison;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class QuartzWorker implements Job {//需要继承Job接口

 /* (non-Javadoc)
  * @see org.quartz.Job#execute(org.quartz.JobExecutionContext)
  */
 private Connection conn;
 
 private Connection getConn(){  
  Connection conn =null;
  String url = "jdbc:mysql://192.168.1.20/iwapdb?user=root&password=&useUnicode=true&characterEncoding=utf-8";
  try{
   Class.forName("org.gjt.mm.mysql.Driver");
   conn = DriverManager.getConnection(url,"","");
  }catch(Exception g){
   g.printStackTrace();
  }
  return conn;
 }
 
 private String getYMD(Date d){
  SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMd");    
  return String.valueOf(sdf.format(d));
 }
 
 
 private String getHHMM(Date d){
  int h = d.getHours();
  int mt = d.getMinutes();
  int hm = h * 100 + mt;
  return String.valueOf(hm);
 }
 
 private void doTimerList(){
//  ArrayList list = new ArrayList();
  try{
   if(conn==null || conn.isClosed()){
    conn = getConn();
   }
   Date d = new Date();
   String ymd = getYMD(d);
   String hm = getHHMM(d);
   String sql = "select * from time_column where Status ='0' AND ActionDate=" + ymd + " AND ActionTime=" + hm;
   System.out.println(sql);
   Statement stmt = conn.createStatement();
   ResultSet rs =stmt.executeQuery(sql);
   while(rs.next()){
    int pid = rs.getInt("PageMainID");
    String tmpsql = "";    
    if(rs.getString("ActionMode").equals("0")){
     tmpsql = "update page_main set status='1' where id = " + pid+"";
    }else{
     tmpsql = "update page_main set status='0' where id = " + pid+"";
    }
    Statement st = conn.createStatement();
    boolean count = st.execute(tmpsql);
    st.close();
    System.out.print(d.toLocaleString() + ":" + tmpsql + "  ");
    if(!count){
     System.out.println("SUCCESS");
    }else{
     System.out.println("FAILURE");
    }
   }
   stmt.close();   
  }catch(Exception g){
   g.printStackTrace();
  }
//  return list;
 }
 

//重载该函数
 public void execute(JobExecutionContext jCxt) throws JobExecutionException {
  // TODO Auto-generated method stub
  System.out.println(
    "Generating report - " +
    jCxt.getJobDetail().getJobDataMap().get("type") + new Date()  
  );
  doTimerList();

 }

 public static void main(String[] args) {
  try{
   SchedulerFactory shFact = new StdSchedulerFactory();
   Scheduler shed = shFact.getScheduler();
   shed.start();
   JobDetail jobDetail = new JobDetail("Quartz","Example",QuartzWorker.class);
   jobDetail.getJobDataMap().put("type","FULL");
   CronTrigger trigger = new CronTrigger("Quartz","Example");
   trigger.setCronExpression("0 0/5 * * * ?");//每5分钟执行一次
   shed.scheduleJob(jobDetail,trigger);   
  }catch(Exception g){
   g.printStackTrace();
  }
 }
}

然后写在同一目录下新建一个quartz.properties文件

#
# Configure Main Scheduler Properties
#

org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one

#
# Configure ThreadPool  线程池数量
#

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount =  5
org.quartz.threadPool.threadPriority = 4

#
# Configure JobStore
#

org.quartz.jobStore.misfireThreshold = 5000

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore  #保存在内存里,如果重新启动,那么所有的信息会消失,如果要做成持久化对象的话,可以保存到数据库里面。具体可以看

http://www.onjava.com/pub/a/onjava/2004/03/10/quartz.html?page=1

我也是照着这个写的,呵呵,可惜是E文的

分享到:
评论

相关推荐

    quartz quartz-1.8.6 dbTables 建表sql

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它提供了丰富的API和灵活性,使得开发者可以方便地定义、安排和管理各种任务。版本1.8.6是Quartz的一个稳定版本,它包含了对数据库...

    quartz-1.6.0.jar和quartz-all-1.6.0.jar

    Quartz是Java领域的一款强大的开源任务调度框架,它允许开发者创建和管理定时任务,从而实现应用程序的自动执行功能。在给定的压缩包文件中,我们有两个版本为1.6.0的Quartz JAR包:`quartz-1.6.0.jar`和`quartz-all...

    quartz-2.2.3版本的quartz初始化sql语句

    Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息...

    quartz创建表sql

    Quartz 是一个开源的作业调度框架,广泛应用于Java企业级应用中,用于自动化任务执行,如定时触发工作流、发送邮件、数据同步等。在Quartz的部署和配置过程中,为了存储作业和触发器的信息,我们需要在关系型数据库...

    quartz_2.3.0 SQL脚本

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它允许开发者灵活地定义作业和触发器,实现复杂的时间调度。在2.3.0这个版本中,Quartz 提供了针对不同数据库系统的初始化脚本,...

    Android studio下的quartz工程

    **Android Studio下的Quartz工程详解** Quartz是一个开源的作业调度框架,广泛应用于Java环境中的任务调度。在Android Studio中使用Quartz,可以为应用程序添加定时执行的任务功能,例如定期发送通知、更新数据或者...

    quartz-2.3.2-API文档-中文版.zip

    赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...

    Quartz 批量下载源码

    Quartz 批量下载源码,Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码

    quartz实例,quartz入门例子

    Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行计划任务。这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的...

    关于spring中quartz的配置

    在Spring框架中集成Quartz是一款常见的任务调度解决方案,它允许开发者在应用中安排定时任务的执行。Quartz是一个开源的作业调度框架,可以用来在Java应用程序中安排复杂的作业任务。以下将详细介绍如何在Spring中...

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...

    Quartz 线程池

    Quartz 是一个开源的作业调度框架,它允许开发者在 Java 应用程序中安排任务的执行。线程池是 Quartz 的核心组成部分,用于管理和执行触发的任务。本文将深入探讨 Quartz 线程池的工作原理、配置以及如何在实际项目...

    quartz官方数据库大全

    Quartz是一个功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数十,数百甚至数万个作业; 将任务定义为标准...

    Quartz所需jar包

    Quartz是一款开源的作业调度框架,它允许开发者在Java应用程序中定义和执行复杂的定时任务。在Java应用开发中,Quartz常被用来自动化各种后台任务,如数据清理、报告生成等。"Quartz所需jar包"是使用Quartz库进行...

    quartz scheduler 入门教程

    quartz scheduler 入门教程 Quartz Scheduler 是一种功能丰富、开源的任务调度程序库,可以在任何 Java 程序中使用。它可以用来创建简单或者复杂的执行次数可以达成千上万的任务。任务可以是任何 Java 可以做的事情...

    Quartz.NET 官方源码及演示例子

    Quartz.NET 是一个开源的作业调度框架,它允许开发者在.NET环境中定义和执行定时任务。这个框架的强大之处在于它的灵活性和可扩展性,使得开发者能够创建复杂的调度逻辑,以满足各种自动化需求。以下是对Quartz.NET...

    quartz-2.3.0-API文档-中文版.zip

    赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...

    Quartz.net-定时任务 Demo

    Quartz.NET是一款强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。这个"Quartz.net-定时任务 Demo"示例将展示如何利用Quartz.NET来安排代码在指定时间后执行,比如几十分钟后的场景。 Quartz.NET的...

    quartz实例sqlserver数据库连接

    Quartz是一款开源的作业调度框架,它允许开发者在应用程序中安排任务执行,比如定时执行某个方法或服务。在“quartz实例sqlserver数据库连接”这个主题中,我们主要讨论如何配置Quartz与SQL Server数据库进行交互,...

    Quartz 2.2.2数据库表格脚本

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。Quartz 2.2.2 版本是其在特定时间的一个稳定版本,它提供了丰富的功能来帮助开发者创建、安排和管理任务。在描述中提到的"数据库...

Global site tag (gtag.js) - Google Analytics