实现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");
} }
实现Quartz的动态增删改查的更多相关文章
- SSM 整合 quartz JDBC方式实现job动态增删改查记录
虽然网上有很多资料,但是都不够系统,本文记录下自己的整合过程. 1. 搭建一个SSM项目,此处略. 2. 按照quartz官方要求,建立quartz相关的数据库和表,相关sql语句如下: /* Nav ...
- jQuery动态增删改查表格信息,可左键/右键提示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mybatis的动态增删改查
1.动态SQL片段 通过SQL片段达到代码复用 <!-- 动态条件分页查询 --> <sql id="sql_count"> select count(*) ...
- fullcalendar日历插件的使用并动态增删改查
我上个项目是做了一个关于教育方面的web端页面,其中的课程表就要用到fullcalendar日历插件,刚开始也是不会用,因为以前也没用过,后面也是看官方文档,问同事,最后完成了这个课程表,个人感觉fu ...
- iOS开发-plist文件增删改查
plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件.扩展名为.plis ...
- Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示
Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...
- 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))
仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...
- (一)Mybatis基本配置,Statement方式,动态代理增删改查
首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...
- 02.Mybatis的动态代理方式实现增删改查
动态代理的方式实现增删改查: 通过约定的方式定位sql语句 约定 > 配置文件 > 硬编码 约定的目标是省略掉通过硬编码的方式定位sql的代码,通过接口直接定位出sql语句,以下代码为通过 ...
随机推荐
- centos 7.5 安装mongodb
MongoDB安装和启动 从官网下载最新对应的版本然后解压,本文以3.6.9为例,将文件拷贝到opt目录下,然后解压: [root@localhost opt]# tar zxvf mongodb-l ...
- SpringBoot学习记(一)第一个SpringBoot Web服务
工具IDEA 一.构建项目 1.选择Spring Initializr 2.填写项目信息 3.勾选webService 4.勾选Thymeleaf 5.项目建立完成,启动类自动生成 二.写个Contr ...
- oracle如何导出owner和tablespace
原文转载至:http://bbs.csdn.net/topics/390819138 --用户创建语句,权限语句select dbms_metadata.get_ddl('USER','SCOTT') ...
- HIbernate编程模型
1.Hibernate: ORM框架,简化SQL开发,编程接口丰富,简化JDBC编程 2.有点: Lazy机制配合Fetch的HQL高级查询,提高开发效率 难点:理解Lazy与Fetch JOIN的原 ...
- 一种新型远距临场机器人 Fusion / Full Body Surrogacy for Collaborative Communication
近日,来自日本庆应大学的机器人专家开发出一种新型远距临场机器人 Fusion,允许操作者远程控制别人的身体来帮助他们完成操作任务.Fusion「栖居」在代理者的背上,具备立体视觉和双声道听觉,可以通过 ...
- 粗解python的@classmethod和@staticmethod及普通实例方法
引言: 使用不同的函数定义方法,可以使得函数定义更加有效而且易于维护 本文为博主原创,根据本人自己的理解整理而成,若有不准确的地方,希望能留言告知以免误导他人: 首先进一段代码,来直观感受一下不同类型 ...
- 2.纯 CSS 创作一个矩形旋转 loader 特效
原文地址:2.纯 CSS 创作一个矩形旋转 loader 特效 扩展后地址:https://scrimba.com/c/cNJVWUR 扩展地址:https://codepen.io/pen/ HT ...
- Python--001
C 和 Python.Java.C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处 ...
- linux教程
linux视频教程:尚观 http://www.uplinux.com/shipin/linuxyong-hu-guan-li-zhi-yong-hu-guan-li-01 一,linux开机(cen ...
- 64位win10系统无法安装.Net framework3.5的两种解决方法
参考网站: https://blog.csdn.net/zang141588761/article/details/52177290 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上 ...