1. Maven依赖

org.quartz-scheduler

quartz

2.2.1

org.quartz-scheduler

quartz-jobs

2.2.1

2. 业务处理类:

import org.quartz.*;

import java.text.SimpleDateFormat;

/**

*

* Created by l1 on 2016/10/8.

*/

class MyJob implements Job{

@Override

public void execute(JobExecutionContext context) throws JobExecutionException {

// job 的名字

String jobName = context.getJobDetail().getKey().getName();

// 任务执行的时间

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");

String jobRunTime = dateFormat.format(java.util.Calendar.getInstance().getTime());

// 输出任务执行情况

System.out.println("任务 : " + jobName + " 在 " +jobRunTime + " 执行了 ");

}

}

3. Quartz管理类:

import org.quartz.*;

import org.quartz.impl.StdSchedulerFactory;

import java.util.concurrent.TimeUnit;

import static org.quartz.CronScheduleBuilder.cronSchedule;

import static org.quartz.JobBuilder.newJob;

import static org.quartz.TriggerBuilder.newTrigger;

/**

*

* Created by l1 on 2016/10/8.

*/

public class QuartzManager {

private static final String JOB_GROUP_NAME = "JOB_GROUP_NAME";

private static final String TRIGGER_GROUP_NAME = "TRIGGER_GROUP_NAME";

/**

* 添加定时任务

*/

public static void addJob(String jobName,String jobGroupName,String triggerName,String triggerGroupName,Class cls,String time){

try {

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

scheduler.start();

JobDetail jobDetail = newJob(cls).withIdentity(jobName, jobGroupName).build();

CronTrigger cronTrigger

= newTrigger().withIdentity(triggerName, triggerGroupName).withSchedule(cronSchedule(time)).build();

scheduler.scheduleJob(jobDetail,cronTrigger);

} catch (SchedulerException e) {

e.printStackTrace();

}

}

public static void addJob(String jobName,String triggerName,String groupName,Class cls,String time){

addJob(jobName,groupName,triggerName,groupName,cls,time);

}

public static void addJob(String jobName,String triggerName,Class cls,String time){

addJob(jobName,JOB_GROUP_NAME,triggerName,TRIGGER_GROUP_NAME,cls,time);

}

/**

* 删除定时任务

*/

public static boolean deleteJob(String jobName,String groupName){

boolean result = false;

try {

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

JobKey jobKey = new JobKey(jobName,groupName);

if(scheduler.checkExists(jobKey)){

result = scheduler.deleteJob(jobKey);

}

} catch (SchedulerException e) {

e.printStackTrace();

}

return result;

}

public static void deleteJob(String jobName){

deleteJob(jobName,JOB_GROUP_NAME);

}

/**

* 停止任务

*/

public static void pauseJob(String jobName,String groupName){

try {

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

JobKey jobKey = new JobKey(jobName,groupName);

if(scheduler.checkExists(jobKey)){

scheduler.pauseJob(jobKey);

}

} catch (SchedulerException e) {

e.printStackTrace();

}

}

public static void pauseJob(String jobName){

pauseJob(jobName,JOB_GROUP_NAME);

}

/**

* 再次启动Job

* @param jobName

* @param groupName

*/

public static void resumeJob(String jobName,String groupName){

try {

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

JobKey jobKey = new JobKey(jobName,groupName);

if(scheduler.checkExists(jobKey)){

scheduler.resumeJob(jobKey);

}

} catch (SchedulerException e) {

e.printStackTrace();

}

}

public static void resumeJob(String jobName){

resumeJob(jobName,JOB_GROUP_NAME);

}

public static void main(String[] args) {

QuartzManager.addJob("job1","trigger1",MyJob.class,"0/15 * * * * ?");

try {

TimeUnit.SECONDS.sleep(30);

} catch (InterruptedException e) {

e.printStackTrace();

}

QuartzManager.deleteJob("job1");

}

}

java定时任务增删改查_实现Quartz的动态增删改查相关推荐

  1. sql增删改查_快速搞定数据库增删改查|附思维导图

    数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实. 下面是关 ...

  2. sql增删改查_面试速记之数据库增删改查|附思维导图

    数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实.下面是关于 ...

  3. java定时任务中使用多线程_定时任务使用多线程注意事项

    在定时任务中为了加快处理速度,一般都会使用多线程处理业务.需要注意一下事项: 1. 定时任务是否允许上一个定时任务未结束,下一个定时任务可以启动,通过Scheduled中的配置在决定. 2. 主线程已 ...

  4. 排名怎么查_公布考研成绩排名?怎么查?

    初试成绩公布后,大家最关心的问题之一可能是:我的初试成绩排第几名?有没有可能进复试呢?进复试有没有优势呢?因为根据初试成绩排名和录取比率,大家可以大致判断出自己的复试位置,相比于其他人是否有优势.但是 ...

  5. 基本存款账户编号怎么查_上海社会保障卡查询个人账户怎么查

    「亲亲小保」社保代缴-企业社保代理-个人社保代缴-人事代理-工资代发​www.qinqinxiaobao.com 很多城市五险一金都是职工的标配,五险一金对职工的作用也是十分大的,尤其在北上广等一线城 ...

  6. java pdf增删改查_如何利用Java代码操作索引库?

    今天是刘小爱自学Java的第161天. 感谢你的观看,谢谢你. 学习计划安排如下: 学了几天的Elasticserch,但都是它本身的知识点,如何通过Java语言去操作它呢? 这就好比以前学数据库,在 ...

  7. SSM整合_实现增删改查_查找

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  8. Springboot2 Quartz实现JAVA定时任务的动态配置

    动态配置Quartz.没接触过定时任务的同学可以先看下此篇:JAVA定时任务实现的几种方式 文章目录 一.需求背景 1. 问题现象 2. 问题分析 3. 解决方案 二.需求背景 2.1. maven依 ...

  9. 创建一个简单的后台教务管理系统,包含动态增删改查学生,年级和课程信息及查看登录日志等功能,包含表单验证.

    创建一个简单的后台教务管理系统,包含动态增删改查学生,年级和课程信息及查看登录日志等功能,包含表单验证. 一.显示页面 新建一个登录页面,即login.jsp <%--Created by In ...

最新文章

  1. web服务器和应用服务器的区别以及负载均衡---学习笔记
  2. Linux rsync 命令参数详解
  3. boost::fusion::as_deque用法的测试程序
  4. HTML5 Canvas 自定义笔刷
  5. nginx location配置详细解释
  6. Hibernate多表关联查询记录映射
  7. Bloombox:iPhone陶瓷底座,还能当花盆和扩音器
  8. 地图可视化开发技巧:geojson转svg后再转emf格式插入ppt实现编辑的解决方案
  9. 汉印HPRT HY80BT 打印机驱动
  10. IsValid() 的用法
  11. JS 获取当前浏览器版本,验证浏览器版本是否高于谷歌80
  12. 淘宝海量数据产品技术架构
  13. 【注意力机制】BAM: Bottleneck Attention Module论文理解
  14. End-to-End Object Detection with Fully Convolutional Network
  15. C# 阿里云对象存储OSS创建、删除、上传代码实现
  16. unity 2d文字跟随主角移动_使用 Unity 粒子系统实现 2D 人物足迹效果
  17. linux shell中'',和``的区别
  18. 数据库周刊36丨2020年8月数据库排行;云厂商腾讯云增速第一;OceanBase集群安装;Oracle RAC调整网卡MTU值;不改代码解决sql性能问题;Mysql索引研究;TiDB电子书……
  19. HardwareNote:一坨黑色“牛屎粑粑”,软封装(COB)
  20. 2018年适合做什么网站?分享几种比较好的网站

热门文章

  1. 2021副高考试成绩查询 www.ppkao.com,2021年4月自学考试成绩查询时间及入口
  2. Java Swing对话框
  3. SpringBoot使用Mybatis逆向工程生成项目
  4. 国外酷站设计:10个漂亮的个人作品网站
  5. java 网页编码_JAVA如何判断网页编码
  6. linux下rm删除文件的恢复
  7. TiDB 在爱奇艺的应用及实践
  8. 过压保护电路设计学习笔记
  9. 单片机欠压保护、欠压复位的用法及作用
  10. PSO粒子群优化CNN-优化神经网络神经元个数dropout和batch_size等超参数