展开全部

第一步:引包

要使用Quartz,必须要引入以下这几个包:

1、log4j-1.2.16

2、quartz-2.1.7

3、slf4j-api-1.6.1.jar

4、slf4j-log4j12-1.6.1.jar

这些e68a8462616964757a686964616f31333361303064包都在下载的Quartz包里面包含着,因此没有必要为寻找这几个包而头疼。

第二步:创建要被定执行的任务类

这一步也很简单,只需要创建一个实现了org.quartz.Job接口的类,并实现这个接口的唯一一个方法execute(JobExecutionContext arg0) throws JobExecutionException即可。如:

import java.text.SimpleDateFormat;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

public class myJob implements Job {

@Override

public void execute(JobExecutionContext arg0) throws JobExecutionException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

System.out.println(sdf.format(new Date()));

}

}

import java.text.SimpleDateFormat;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

public class myJob implements Job {

@Override

public void execute(JobExecutionContext arg0) throws JobExecutionException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

System.out.println(sdf.format(new Date()));

}

}

这个例子很简单,就不用解说了。

第三步:创建任务调度,并执行

这一步应该算是最难的一步的,但其实是非常简单的,直接上代码

import static org.quartz.CronScheduleBuilder.cronSchedule;

import static org.quartz.JobBuilder.newJob;

import static org.quartz.TriggerBuilder.newTrigger;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.quartz.CronTrigger;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerFactory;

import org.quartz.impl.StdSchedulerFactory;

public class Test {

public void go() throws Exception {

// 首先,必需要取得一个Scheduler的引用

SchedulerFactory sf = new StdSchedulerFactory();

Scheduler sched = sf.getScheduler();

//jobs可以在scheduled的sched.start()方法前被调用

//job 1将每隔20秒执行一次

JobDetail job = newJob(myJob.class).withIdentity("job1", "group1").build();

CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build();

Date ft = sched.scheduleJob(job, trigger);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: " + trigger.getCronExpression());

// job 2将每2分钟执行一次(在该分钟的第15秒)

job = newJob(myJob.class).withIdentity("job2", "group1").build();

trigger = newTrigger().withIdentity("trigger2", "group1").withSchedule(cronSchedule("15 0/2 * * * ?")).build();

ft = sched.scheduleJob(job, trigger);

System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: "+ trigger.getCronExpression());

// 开始执行,start()方法被调用后,计时器就开始工作,计时调度中允许放入N个Job

sched.start();

try {

//主线程等待一分钟

Thread.sleep(60L * 1000L);

} catch (Exception e) {}

//关闭定时调度,定时器不再工作

sched.shutdown(true);

}

public static void main(String[] args) throws Exception {

Test test = new Test();

test.go();

}

}

import static org.quartz.CronScheduleBuilder.cronSchedule;

import static org.quartz.JobBuilder.newJob;

import static org.quartz.TriggerBuilder.newTrigger;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.quartz.CronTrigger;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerFactory;

import org.quartz.impl.StdSchedulerFactory;

public class Test {

public void go() throws Exception {

// 首先,必需要取得一个Scheduler的引用

SchedulerFactory sf = new StdSchedulerFactory();

Scheduler sched = sf.getScheduler();

//jobs可以在scheduled的sched.start()方法前被调用

//job 1将每隔20秒执行一次

JobDetail job = newJob(myJob.class).withIdentity("job1", "group1").build();

CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build();

Date ft = sched.scheduleJob(job, trigger);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: " + trigger.getCronExpression());

// job 2将每2分钟执行一次(在该分钟的第15秒)

job = newJob(myJob.class).withIdentity("job2", "group1").build();

trigger = newTrigger().withIdentity("trigger2", "group1").withSchedule(cronSchedule("15 0/2 * * * ?")).build();

ft = sched.scheduleJob(job, trigger);

System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: "+ trigger.getCronExpression());

// 开始执行,start()方法被调用后,计时器就开始工作,计时调度中允许放入N个Job

sched.start();

try {

//主线程等待一分钟

Thread.sleep(60L * 1000L);

} catch (Exception e) {}

//关闭定时调度,定时器不再工作

sched.shutdown(true);

}

public static void main(String[] args) throws Exception {

Test test = new Test();

test.go();

}

}

OK了,Job1和Job2就会被安排为定时执行了。此时程序是可以执行的了,但是可能会输出WARN级别日志,这是因为没有加log4j的配置文件,加上配置文件,就OK了。这里需要说明的地方只有一个,其它的可以直接Copy到您的项目里面。看代码:

CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build();

CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build();

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java quartz job_java quartz job 执行时间配置相关推荐

  1. Java任务调度之Quartz快速入门

    首先所谓的任务调度指的是软件系统在从某个时间节点开始,以固定的频率,除去特定的某些时间段,定期执行某项任务,比如可以在某个夜深人静的时候做一些大批量的文件传输.备份等耗费极大资源的工作,那么通过这个概 ...

  2. (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务...

    http://blog.csdn.net/zixiao217/article/details/53044890 读完第一节,我们已经对Quartz有了一个大体的认识,它可以定时帮我们执行一些处理程序, ...

  3. Java 任务调度框架 Quartz

    文章目录 1.Quartz 1.1 引入依赖 <dependency><groupId>org.quartz-scheduler</groupId><arti ...

  4. Springboot整合Quartz集群部署以及配置Druid数据源

    参考链接: https://blog.csdn.net/wangmx1993328/article/details/105441308 https://blog.csdn.net/qq_3966905 ...

  5. java方法触发器,Quartz.Net任务和触发器实现方法详解

    Quartz API Quartz API的主要接口和类如下: IScheduler - 和调度器交互的主要API IJob - 调度器会执行实现这个接口的实例 IJobDetail - 用来定义任务 ...

  6. 在java中使用quartz_如何在Java中使用Quartz Scheduler框架运行cron作业?

    我在Java中使用Quartz Scheduler来运行cron作业 . 这是我第一次使用这个框架来运行cron作业,所以我有些困惑 . 我正在关注这个tutorial以更好地理解如何使用Quartz ...

  7. Quartz.NET-课程10:配置,资源使用和SchedulerFactory

    Quartz以模块化方式构建,因此为了让它运行,需要将多个组件"拼凑"在一起.幸运的是,有一些帮助者可以做到这一点. 在Quartz开始工作之前需要配置的主要组件是: 线程池 作业 ...

  8. Quartz - 集群Cluster的配置、failOver原理

    在采用JDBC-Based JobStore 的前提下,Quartz支持集群部署.每一个Scheduler任务调度服务都可以作为集群中的一个节点,节点之间并不互相通讯,正常情况下每一个节点只知道自己. ...

  9. 【Quartz】Quartz概述及入门实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使 ...

  10. linux 火狐安装java插件_Linux下Firefox安装配置JDK插件

    在Linux下安装了firefox浏览器,版本是2.0.0.20.登录Oracle EBS后打开form,提示要装JDK1.4.2_04,手工安装完之后,PATH也已经设置好了.为什么firefox还 ...

最新文章

  1. 匿名函数,结合闭包的写法,js对象的案例
  2. hp designiet 500绘图仪程序_邹军:通过数控宏程序实现刀具寿命管理
  3. 全国计算机等级考试题库二级C操作题100套(第74套)
  4. eclipse占用内存过大_Java内存泄漏分析工具Memory Analyzer Tool
  5. Boost Graph
  6. 中文语音识别系统搭建流程笔记
  7. 队列加分项:杨辉三角
  8. spring整合mybatis(详细)
  9. Monkey 命令 基本参数介绍
  10. CentOS 7 配置花生壳(phddns)自启动
  11. flash实验中需添加的flash.c文件
  12. ORBSLAM2 文章翻译
  13. 80286计算机配置,电脑的各种配置给详的细解释.doc
  14. java有理数类的封装_【Java笔记】有理数的类封装
  15. 树的双亲表示法(C语言实现)——树的存储结构
  16. 小想法 | 开源一个自己的Python小项目「Park at ease」停车场管理系统
  17. 初中计算机表格处理教案,初中信息技术Excel教案设计
  18. Linux网络配置管理
  19. Django 2.2:模型M.定义模型
  20. 无线探针的原理及代码实现

热门文章

  1. @Transactional注解失效场景之——同类中方法调用,事务失效
  2. java的复制构造函数_如何从复制赋值运算符调用复制构造函数?
  3. vs生成解决方案默认路径_交换网络防环协议——STP生成树,太阁实验栈
  4. matlab相机标定
  5. C++:使用vector::reserve来避免不必要的重新分配
  6. C++ 在.h文件中包含头文件和在.cpp文件中包含头文件有什么区别?
  7. ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目实例
  8. 单片机通过蜂鸣器播放任意音乐代码实现(2):音乐单片机代码自动生成
  9. 安全学习笔记(一)-文件下载以及NC
  10. 有可直接运营的IPTV/OTT系统ma?