实现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语句,以下代码为通过 ...
随机推荐
- gearman在虚拟机上运行没有自动开启的处理
几天来被gearman无响应的问题困扰,后来请教了大神解决.原因是gearman在虚拟机上运行不稳定,无法自动开启,需手动开始,输入图片的两行命令即开始.
- Maven 插件管理
偶然与巧合 舞动了蝶翼 谁的心头风起 前赴而后继 万千人追寻 荒漠唯一菩提 似擦身相遇 或擦肩而去 命运犹如险棋 无数时间线 无数可能性 终于交织向你
- 6.22-Servlet
一.servlet servlet是运行在服务器端的java程序 jsp专注于显示 servlet处理请求和响应 创建servlet 继承HttpServlet 实现servlet接口 配置servl ...
- Spark分析之启动流程
- MyBatis 中#与$的区别
今天在工作中有个点击排序的功能调试了许久,终寻因,总结之. 需求是这样的,页面有个table,有一列的上下箭头可点击并排序.对于这种需求,我的mybatis.xml的sql配置写成了如下: < ...
- SyntaxError: Non-ASCII character ‘\xe5′ in file
在写一个抓取网页的小脚本,运行起来总是出现这个错误 查了下Python的默认编码文件是用的ASCII码,你将文件存成了UTF-8也没用,解决办法很简单 只要在文件开头加入 # -*- coding: ...
- classification-softmax
softmax分类 import tensorflow as tf import numpy as npfrom input_data import read_data_sets mnist = re ...
- OpenACC 计算规约时发现的小坑
▶ 使用 OpenACC 的 parallel 构件来计算规约,主要想说的是 win10 pgi 和 win10 WSL pgi 结果的不同和关于 for 循环的一个小坑 ● 正常的代码 #inclu ...
- div+css样式命名规则,值得收藏
div+css样式命名规则,值得收藏 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:w ...
- JAVA 整合 SSM (Spring + SpringMVC + MyBatis)
< 一 > POM 配置文件 ( 如果出现 JAR 包 引入错误, 请自行下载 ) <project xmlns="http://maven.apache.org/POM/ ...