`

quartz定时器

 
阅读更多
package com.wangxuegang.quartz;

import java.util.ArrayList;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.impl.calendar.HolidayCalendar;

public class QuartzTest implements Job{

	public static void main(String[] args) throws Exception {
		
		
		/** 实例 1 start */
		case1();
		/** 实例 1 end */
		
		/** 实例 2 start */
		case2();
		/** 实例 2 end */
		
		/** 实例 3 start */
		case3();
		/** 实例 3 end */
		
	}
	
	//实例1
	public static void case1() throws Exception{
		
		//获取默认调度实例化对象
		Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
		//启动
		scheduler.start();
		//关闭
		scheduler.shutdown();
	}
	
	//实例2
	public static void case2() throws Exception{
		
		//创建调度器,并启动调度器
		StdSchedulerFactory ssf = new StdSchedulerFactory();
		Scheduler scheduler = ssf.getScheduler();
		scheduler.start();
		
		//创建任务,QuartzTest类实现Job接口
		JobDetail jobDetail = new JobDetail("myJob",null,QuartzTest.class);
		
		//JobDataMap集合实现map接口,用于存数据,JobExecutionContext对象接受数据
		jobDetail.getJobDataMap().put("jobSays", "Hello World!");
		jobDetail.getJobDataMap().put("myFloatValue", 3.141f);
		jobDetail.getJobDataMap().put("myStateData", new ArrayList()); 
		
		
		//每秒激活一次
		Trigger trigger = TriggerUtils.makeSecondlyTrigger();
		//在下一秒启动
		trigger.setStartTime(TriggerUtils.getEvenSecondDate(new Date()));
		trigger.setName("myTrigger");
		
		//调度任务
		scheduler.scheduleJob(jobDetail, trigger);
	}
	
	//实例3
	public static void case3() throws Exception{
		
		//创建日历对象
		HolidayCalendar cal = new HolidayCalendar();
		
		//排除节假日时间
		cal.addExcludedDate(new Date("Thu Mar 21 10:59:44 CST 2020"));
		
		//获取默认调度实例化对象
		Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
		//启动
		scheduler.start();
		
		//将排除节假日时间注册到调度器中
		scheduler.addCalendar("myHolidays", cal, false, false);
		
		//每秒激活一次
		Trigger trigger1 = TriggerUtils.makeSecondlyTrigger();
		//在下一秒启动
		trigger1.setStartTime(TriggerUtils.getEvenSecondDate(new Date()));
		trigger1.setName("myTrigger1");
		
		//用trigger1来安排任务
		trigger1.setCalendarName("myHolidays");
		
		//每天 8:00 触发
		Trigger trigger2 = TriggerUtils.makeDailyTrigger(8, 0); 
		//开始时间
		trigger2.setStartTime(new Date()); 
		trigger2.setName("myTrigger2");
		//用trigger2 来安排任务
		trigger2.setCalendarName("myHolidays");
		
		//创建任务,QuartzTest类实现Job接口
		JobDetail jobDetail1 = new JobDetail("myJob1",null,QuartzTest.class);
		JobDetail jobDetail2 = new JobDetail("myJob2",null,QuartzTest.class);
		
		//JobDataMap集合实现map接口,用于存数据,JobExecutionContext对象接受数据
		jobDetail1.getJobDataMap().put("jobSays", "Hello World!");
		jobDetail1.getJobDataMap().put("myFloatValue", 3.141f);
		jobDetail1.getJobDataMap().put("myStateData", new ArrayList()); 
		
		//JobDataMap集合实现map接口,用于存数据,JobExecutionContext对象接受数据
		jobDetail2.getJobDataMap().put("jobSays", "Hello World!");
		jobDetail2.getJobDataMap().put("myFloatValue", 3.141f);
		jobDetail2.getJobDataMap().put("myStateData", new ArrayList()); 
		
		//调度任务
		scheduler.scheduleJob(jobDetail1, trigger1);
		scheduler.scheduleJob(jobDetail2, trigger2);
		System.out.println(new Date());
	}

	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		System.out.println("任务开始   strat");
		String instName = context.getJobDetail().getName();
		String instGroup = context.getJobDetail().getGroup();
		JobDataMap dataMap = context.getJobDetail().getJobDataMap(); 
		String jobSays = dataMap.getString("jobSays");
		float myFloatValue = dataMap.getFloat("myFloatValue");
		ArrayList state = (ArrayList)dataMap.get("myStateData");
		state.add(new Date());
		System.err.println("Instance " + instName + " of DumbJob says: " + jobSays); 
		System.out.println("任务开始   end");
	}

}

 

### 设置日志打印优先级 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL ###
log4j.rootLogger = debug,console,debug,error,all

### 输出信息到控制抬 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出INFO 级别以上的日志到=C://logs/info.log ###
log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.File = C://logs/info.log
log4j.appender.debug.Append = true
log4j.appender.debug.Threshold = INFO 
log4j.appender.debug.layout = org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=C://logs/error.log ### 
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File =C://logs/error.log 
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR 
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ALL 级别以上的日志到=C://logs/all.log ### 
log4j.appender.all = org.apache.log4j.DailyRollingFileAppender
log4j.appender.all.File =C://logs/all.log 
log4j.appender.all.Append = true
log4j.appender.all.Threshold = ALL 
log4j.appender.all.layout = org.apache.log4j.PatternLayout
log4j.appender.all.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

 

0
0
分享到:
评论

相关推荐

    Quartz定时器介绍与简单使用

    ### Quartz定时器介绍与简单使用 #### 1.1 Quartz介绍 Quartz 是一款功能强大的开源任务调度框架,它完全采用 Java 编写而成。该框架允许开发人员以灵活的方式定义作业及其触发规则,从而实现对任务的定时调度。...

    quartz定时器源码jar包下载

    作为一个专业的IT行业大师,我很高兴为你解析Quartz定时器的核心概念、功能以及如何通过源码学习。 Quartz定时器允许开发者创建、调度和管理任务,这些任务可以是简单的函数调用或者复杂的业务流程。它支持多种调度...

    Spring Quartz 定时器示例(Web工程版)

    Spring Quartz 定时器示例(Web工程版),欢迎下载。

    Quartz定时器从入门到进阶

    Quartz定时器是一个开源的作业调度框架,专为J2SE和J2EE应用程序设计,完全用Java编写。它的核心优势在于提供强大的灵活性和简单性,使得开发者可以轻松创建简单的或复杂的任务调度。Quartz支持多种特性,如数据库...

    quartz定时器api

    Quartz定时器API是Java平台上一个强大的作业调度框架,它被广泛用于构建自动化任务和后台作业,例如数据备份、报表生成、系统维护等。Quartz提供了丰富的API来创建、管理和控制作业(Jobs)和触发器(Triggers),...

    Quartz定时器事例

    下面,我们将深入探讨Quartz定时器的工作原理、配置、API使用以及在实际项目中的应用案例。 1. **Quartz简介** - Quartz是一个基于JDBC存储的可扩展的作业调度框架,能够用于执行计划性的任务。 - 它支持复杂的...

    java Spring OpenSymphony的Quartz定时器的时间设置

    在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...

    一个简单的quartz定时器的demo

    这个"一个简单的quartz定时器的demo"是展示如何在项目中集成和使用Quartz的基本步骤,包括创建任务、配置调度器以及管理任务的生命周期。 首先,Quartz的核心组件包括Scheduler(调度器)、Job(任务)和Trigger...

    Quartz定时器表.sql

    Quartz定时器表 执行语句 方便部署处理数据

    spring boot集成quartz定时器

    本文将详细讲解如何在Spring Boot项目中集成Quartz定时器,以及如何利用Spring的依赖注入特性来实现Job。 一、集成Quartz定时器 1. 添加依赖:首先,你需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中...

    Spring Quartz定时器的jar包

    Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...

    Quartz定时器,表达式自动生成工具

    Quartz定时器是一款广泛应用于Java开发中的开源任务调度框架,其功能强大且灵活,能够帮助开发者轻松实现定时任务的管理。在Java应用中,我们常常需要执行一些周期性的任务,如数据备份、清理缓存或者发送邮件等,而...

    [Quartz]Quartz定时器的j2ee系统使用

    Quartz的Hibernate模型 博文链接:https://xmkevinchen.iteye.com/blog/196392

    quartz定时器2.2.1JAR包

    Quartz定时器是一款开源的、功能强大的作业调度框架,它为Java应用程序提供了精确且可扩展的任务调度能力。在Java世界中,Quartz以其灵活性、稳定性和广泛的社区支持而备受推崇。2.2.1版本是Quartz的一个稳定版本,...

    一个基础的Quartz定时器案例

    在这个基础的Quartz定时器案例中,我们将探讨如何使用Quartz API来创建、配置和执行定时任务。 首先,Quartz的核心组件包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际需要执行的任务,...

    quartz定时器配置与jar包

    本资料包将详细介绍如何在Spring框架中配置和使用Quartz定时器,并涉及到cron表达式的使用。 一、Quartz简介 Quartz是一个完全由Java编写的作业调度框架,能够精确地调度任务,支持简单或复杂的调度需求。Quartz的...

    quartz 定时器

    #### 一、Quartz定时器概述 ##### 特点: 1. **灵活性**:Quartz能嵌入到任何独立的应用中运行,无论是桌面应用程序还是服务器端应用。 2. **事务支持**:Quartz能够在应用服务器或Servlet容器中实例化,并且能够...

    quartz定时器不依赖任何框架

    Quartz定时器是一款强大且灵活的开源作业调度框架,它允许开发者在Java应用程序中安排复杂的任务执行。Quartz不依赖任何特定的Web或应用服务器框架,因此可以独立使用,这正是"quartz定时器不依赖任何框架"这个主题...

    quartz定时器mysql 脚本

    quartz定时器mysql的脚本,如果需要定时器持久化到数据库,可以使用

    简单实现Spring Quartz定时器

    Spring Quartz定时器是一种在Java应用中实现定时任务的流行框架,它允许开发者精确地调度任务执行。本篇文章将深入探讨如何在Spring框架中简单实现Quartz定时器,并结合源码和工具来帮助理解其工作原理。 首先,让...

Global site tag (gtag.js) - Google Analytics