实现Quartz的动态增删改查

1. Maven依赖

<dependency>    <groupId>org.quartz-scheduler</groupId>    <artifactId>quartz</artifactId>    <version>2.2.1</version></dependency><dependency>    <groupId>org.quartz-scheduler</groupId>    <artifactId>quartz-jobs</artifactId>    <version>2.2.1</version></dependency>
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");    }

}
 
 
时间: 2024-10-27 09:37:18

实现Quartz的动态增删改查的相关文章

iOS开发-plist文件增删改查

plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件.扩展名为.plist ,因此被称为 plist文件,xCode中默认的是一种树状的结构展现出来数据,可视化的动态增删改查,非常人性化,不过最终的结果是以XML形式存储的,Plist文件可以用于存储用户的一些设置信息,具体根据需求而定. 简单创建文件 简单创建文件就是说可以直接从xCode创建,右击项目new File

javascript生成表格增删改查 JavaScript动态改变表格单元格内容 动态生成表格 JS获取表格任意单元格 javascript如何动态删除表格某一行

jsp页面表格布局Html代码 <body > <center> <input type="text" value="111" id="mytext"> <table border="1" width="60%" id="mytable"> <tr> <td id="td1">第一行第一列<

easyui datagrid java增删改查 动态补全

猛击-->   easyui datagrid 增删改查 动态补全 easyui datagrid java增删改查 动态补全,布布扣,bubuko.com

Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程案例演示

Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http://www.cnblogs.com/dunitian/p/5221058.html 平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html#skill 先安装一下Dapper(建议用nuget包来管理) 连接字符串: s

ssm框架搭建+easyui增删改查实现

闲来无事,看了看别人的博客文档也跟着敲了敲,特地记录下来,方便以后学习: spring版本:4.0.6 mybatis版本:3.2.5 所有jar包打包下载:http://pan.baidu.com/s/1qLEaU 1.项目目录结构 其中,controller包下存放控制层文件,dao下存放各个model类相关的数据库操作接口,entity下放置各种model类,mappers下放置各个dao对应的映射文件,service服务层就不说了,放置各种service接口,impl是其具体实现类. 2

【Hibernate】Hibernate的在Eclipse+Mysql的配置、安装,纯Java,利用Annotation与HQL完成数据库的增删改查

这篇文章有很多槽点,在Hibernate4.x上面用着Hibernate3.x的写法去写.而且程序中放到Eclipse中会有一大堆警告,但是这好歹也在一定程度上完成了Hibernate的入门.毕竟现在很多介绍Hibernate的书籍都是用Hibernate3.x的写法去写.上次那篇<[Hibernate]最简单的Hibernate工程--账号注册系统>(点击打开链接)杂糅Struts的技术其实是不对的.因为Hibernate完成的是,从Java到数据库,从数据库到Java的任务.之后Java与

SpringMVC,MyBatis商品的增删改查

一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java 1 package com.tony.ssm.mapper; 2 3 import java.util.List; 4 5 import com.tony.ssm.po.ItemsCustom; 6 import com.tony.ssm.po.ItemsQueryVo; 7 8 public interface ItemsMapperCustom { 9 //商品查询列表

SSH简单的增删改查逻辑流程

自学了一段时间的java了,最近开始自己做点小项目练手了,争取每做一些,总结一些,顺便复习以前所学的知识.今天遇到一个bug调了2个小时, 醉了,菜鸟调试bug,内心真的是有一亿个草泥马在奔腾啊!不过真的挺喜欢程序里面的逻辑线条的. 一. 整个MVC逻辑流程(以增加为例) 1.Jsp页面:用js实现表单中增加的方法doAdd(),单击增加按钮时则触发doAdd()方法提交表单到${basePath}nsfw/user_addUI.action这个地址 function doAdd(){     

搭建第一个web项目:实现用户的增删改查

好久没写这个web的代码了,再不写估计以前的也忘记的差不多了,赶紧复习下,顺便把自己的想法慢慢实现了. 最近在公司发现以前的项目有用easyUI搭建的.赶紧copy回来学习下. 感觉写日志真的很有必要,自己总结的肯定要比每次从网上查阅来的靠谱.每次搭建一个基本的web项目都都要查ssh的配置真的很忧伤啊,有木有!!! 把jar包的截图截了一下,要不总是记不清该用到的基本jar有啥. 其中Struts中用到的jar有:commons-fileupload.jar  commons-io.jar