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
相关推荐
### Quartz定时器介绍与简单使用 #### 1.1 Quartz介绍 Quartz 是一款功能强大的开源任务调度框架,它完全采用 Java 编写而成。该框架允许开发人员以灵活的方式定义作业及其触发规则,从而实现对任务的定时调度。...
作为一个专业的IT行业大师,我很高兴为你解析Quartz定时器的核心概念、功能以及如何通过源码学习。 Quartz定时器允许开发者创建、调度和管理任务,这些任务可以是简单的函数调用或者复杂的业务流程。它支持多种调度...
Spring Quartz 定时器示例(Web工程版),欢迎下载。
Quartz定时器是一个开源的作业调度框架,专为J2SE和J2EE应用程序设计,完全用Java编写。它的核心优势在于提供强大的灵活性和简单性,使得开发者可以轻松创建简单的或复杂的任务调度。Quartz支持多种特性,如数据库...
Quartz定时器API是Java平台上一个强大的作业调度框架,它被广泛用于构建自动化任务和后台作业,例如数据备份、报表生成、系统维护等。Quartz提供了丰富的API来创建、管理和控制作业(Jobs)和触发器(Triggers),...
下面,我们将深入探讨Quartz定时器的工作原理、配置、API使用以及在实际项目中的应用案例。 1. **Quartz简介** - Quartz是一个基于JDBC存储的可扩展的作业调度框架,能够用于执行计划性的任务。 - 它支持复杂的...
在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...
这个"一个简单的quartz定时器的demo"是展示如何在项目中集成和使用Quartz的基本步骤,包括创建任务、配置调度器以及管理任务的生命周期。 首先,Quartz的核心组件包括Scheduler(调度器)、Job(任务)和Trigger...
Quartz定时器表 执行语句 方便部署处理数据
本文将详细讲解如何在Spring Boot项目中集成Quartz定时器,以及如何利用Spring的依赖注入特性来实现Job。 一、集成Quartz定时器 1. 添加依赖:首先,你需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中...
Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...
Quartz定时器是一款广泛应用于Java开发中的开源任务调度框架,其功能强大且灵活,能够帮助开发者轻松实现定时任务的管理。在Java应用中,我们常常需要执行一些周期性的任务,如数据备份、清理缓存或者发送邮件等,而...
Quartz的Hibernate模型 博文链接:https://xmkevinchen.iteye.com/blog/196392
Quartz定时器是一款开源的、功能强大的作业调度框架,它为Java应用程序提供了精确且可扩展的任务调度能力。在Java世界中,Quartz以其灵活性、稳定性和广泛的社区支持而备受推崇。2.2.1版本是Quartz的一个稳定版本,...
在这个基础的Quartz定时器案例中,我们将探讨如何使用Quartz API来创建、配置和执行定时任务。 首先,Quartz的核心组件包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际需要执行的任务,...
本资料包将详细介绍如何在Spring框架中配置和使用Quartz定时器,并涉及到cron表达式的使用。 一、Quartz简介 Quartz是一个完全由Java编写的作业调度框架,能够精确地调度任务,支持简单或复杂的调度需求。Quartz的...
#### 一、Quartz定时器概述 ##### 特点: 1. **灵活性**:Quartz能嵌入到任何独立的应用中运行,无论是桌面应用程序还是服务器端应用。 2. **事务支持**:Quartz能够在应用服务器或Servlet容器中实例化,并且能够...
Quartz定时器是一款强大且灵活的开源作业调度框架,它允许开发者在Java应用程序中安排复杂的任务执行。Quartz不依赖任何特定的Web或应用服务器框架,因此可以独立使用,这正是"quartz定时器不依赖任何框架"这个主题...
quartz定时器mysql的脚本,如果需要定时器持久化到数据库,可以使用
Spring Quartz定时器是一种在Java应用中实现定时任务的流行框架,它允许开发者精确地调度任务执行。本篇文章将深入探讨如何在Spring框架中简单实现Quartz定时器,并结合源码和工具来帮助理解其工作原理。 首先,让...