quartz使用案例
@Service
public class QuartzServiceImpl extends
BaseServiceImpl<JobDetails, String, QuartzTaskVO> implements
QuartzService { private JobDetailsJpaDao jobDetailsJpaDao; public JobDetailsJpaDao getJobDetailsJpaDao() {
return jobDetailsJpaDao;
} @Autowired
public QuartzServiceImpl(JobDetailsJpaDao jobDetailsJpaDao,
BaseJdbcDao baseJdbcDao) {
super((BaseJpaRepository<JobDetails, String>) jobDetailsJpaDao,
baseJdbcDao);
this.jobDetailsJpaDao = jobDetailsJpaDao;
} @Autowired
private Scheduler scheduler; @ServiceDesc("查询当前活动的任务列表")
@Override
public Map<String, Object> queryActiveTaskMap(JobDetailsQueryParam param) {
SQLQueryUtil util = new SQLQueryUtil();
util.addTable("QRTZ_TRIGGERS");
util.addColumn("SCHED_NAME", "schedule_name");
util.addColumn("JOB_NAME", "job_name");
util.addColumn("JOB_GROUP", "job_group");
util.addColumn("TRIGGER_NAME", "trigger_name");
util.addColumn("TRIGGER_GROUP", "trigger_group");
util.addColumn("PREV_FIRE_TIME", "prev_fire_time");
util.addColumn("NEXT_FIRE_TIME", "next_fire_time");
util.addColumn("START_TIME", "start_time");
util.addColumn("END_TIME", "end_time");
util.addColumn("TRIGGER_STATE", "trigger_state"); return super.queryDataMapNotExtend(util, QuartzTaskVO.class, param);
} @Override
@ServiceDesc("启动任务")
public void startTask(String jobId, String triggerId) throws AppException {
TaskId id = new TaskId(jobId, triggerId);
try {
scheduler.scheduleJob(id.getJobDetails().getJobDetail(), id
.getTriggers().getTrigger());
} catch (SchedulerException e) {
throw new AppException(ResultCode.Failure, e.getMessage());
} catch (ClassNotFoundException e) {
throw new AppException(ResultCode.Failure, e.getMessage());
}
} @Override
@ServiceDesc("暂停任务")
public void pauseTask(String... ids) throws AppException {
try {
for (String idStr : ids) {
scheduler.pauseJob(new TaskId(idStr).getJobKey());
}
} catch (SchedulerException e) {
throw new AppException(ResultCode.Failure, e.getMessage());
}
} @Override
@ServiceDesc("恢复任务")
public void resumeTask(String... ids) throws AppException {
try {
for (String idStr : ids) {
scheduler.resumeJob(new TaskId(idStr).getJobKey());
}
} catch (SchedulerException e) {
throw new AppException(ResultCode.Failure, e.getMessage());
}
} @Override
@ServiceDesc("删除任务")
public void deleteTask(String... ids) throws AppException {
try {
for (String idStr : ids) {
scheduler.deleteJob(new TaskId(idStr).getJobKey());
}
} catch (SchedulerException e) {
throw new AppException(ResultCode.Failure, e.getMessage());
}
} } class TaskId { /**
* id字符串格式: jobName:jobGroup;triggerName:triggerGroup
*/
public TaskId(String id) {
this.jobKey = new JobKey(id.split(";")[0].split(":")[0],
id.split(";")[0].split(":")[1]);
this.triggerKey = new TriggerKey(id.split(";")[1].split(":")[0],
id.split(";")[1].split(":")[1]);
} public TaskId(String jobId, String triggerId) {
JobDetailsService jobDetailsService = (JobDetailsService) SpringContextUtil
.getUtil().getBean(JobDetailsService.class);
TriggersService triggersService = (TriggersService) SpringContextUtil
.getUtil().getBean(TriggersService.class);
this.jobDetails = jobDetailsService.get(jobId);
this.triggers = triggersService.get(triggerId);
this.jobKey = new JobKey(jobDetails.getJobName(),
jobDetails.getJobGroup());
this.triggerKey = new TriggerKey(triggers.getTriggerName(),
triggers.getTriggerGroup());
} private JobDetails jobDetails; private Triggers triggers; private JobKey jobKey; private TriggerKey triggerKey; public JobDetails getJobDetails() {
return jobDetails;
} public void setJobDetails(JobDetails jobDetails) {
this.jobDetails = jobDetails;
} public Triggers getTriggers() {
return triggers;
} public void setTriggers(Triggers triggers) {
this.triggers = triggers;
} public JobKey getJobKey() {
return jobKey;
} public void setJobKey(JobKey jobKey) {
this.jobKey = jobKey;
} public TriggerKey getTriggerKey() {
return triggerKey;
} public void setTriggerKey(TriggerKey triggerKey) {
this.triggerKey = triggerKey;
} }
quartz使用案例的更多相关文章
- JAVAEE——BOS物流项目13:Quartz入门案例、核心概念、cron 表达式的格式(了解)
1.quartz入门案例 本入门案例基于spring和quartz整合完成. 第一步:创建maven工程,导入spring和quartz相关依赖 第二步:创建任务类 第三步:在spring配置文件中配 ...
- Quartz简单案例
需求需要开发一个每天定时推送消息给微信用户,第一次接触quartz,简单案例 1. 先编辑要执行的任务 测试类代码 package com.wqq.test.quartz; import org.sp ...
- 初识Quartz(入门案例)+常用的Cron表达式
1.Quartz架构图 1.实体层 package cn.happy.entity; //1. public class Plan { //时间 private String date; //任务 p ...
- Quartz入门案例与介绍(与spring整合)
Quartz概述 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或 ...
- quartz(3)--spring整合quartz入门案例
第一步:导入jar <!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId&g ...
- spring boot整合quartz定时任务案例
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springBo ...
- Quartz应用实践入门案例一(基于Web环境)
Quartz是一个完全由java编写的开源作业调度框架,正是因为这个框架整合了许多额外的功能,所以在使用上就显得相当容易.只是需要简单的配置一下就能轻松的使用任务调度了.在Quartz中,真正执行的j ...
- Spring中使用quartz插件实现定时任务
第一步:导入架包 *spring3.2.3版本的架包将spring的各个功能模块给分开了,我们必须将Spring必须依赖的包导入上去 第二步:编写配置文件 <?xml version=" ...
- Quartz的基本使用之入门(2.3.0版本)
一.Quartz可以用来做什么 Quartz是一个强大任务调度框架,我工作时候会在这些情况下使用到quartz框架,当然还有很多的应用场景,在这里只列举2个实际用到的 餐厅系统会在每周四晚上的22点自 ...
随机推荐
- html5的小知识点小集合
html5的小知识点小集合 html5知识 1. Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于< ...
- java 24 - 4 GUI之创建数据转移窗口
需求: 把文本框中的数据,通过点击按钮,转移到文本域中. 同时清空文本框中的数据 代码:(步骤都注释了) public class FrameDemo4 { public static void m ...
- poj1273 Drainage Ditches
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 68414 Accepted: 2648 ...
- C# String.split()用法小结。String.Split 方法 (String[], StringSplitOptions)
split()首先是一个分隔符,它会把字符串按照split(' 字符')里的字符把字符串分割成数组,然后存给一个数组对象. 输出数组对象经常使用foreach或者for循环. 第一种方法 string ...
- HTML 学习笔记 CSS样式(字体)
css字体属性定义文本的字体系列 大小 加粗 风格 和 变形(如小型大写字母(类似于大写字母字体变小了)) css字体系列 在css中 有两种不同类型的字体系列名称 1.通用字体系列 - 拥有相似外观 ...
- QContester
发个福利好了(求不吐槽名字 自己做的软件,(目前)效果大概如上图- 对于我这种比较喜欢参加一些奇怪比赛的人来说还是有用的. 原理-就是在后台开七个浏览器2333 按左边的按钮会开始抓取比赛,进度可以在 ...
- 阴影效果css
http://www.cssreflex.com/css-generators/ http://blog.csdn.net/freshlover/article/details/7610269 css ...
- php 正则匹配中文(转)
我使用正则表达式来匹配中问的时候,出现了无法匹配的问题,问题如下 PCRE does not support \L, \l, \N{name}, \U, or \u at offset 2 我原来的匹 ...
- 004商城项目:ssm框架的整合之后的调试
我们来做一个测试应用,去数据库中输入item表的id然后找到里面的信息转换成json显示在页面上. item表如下: 效果: 代码如下: Dao层: 逆向工程自己的的Mapper. Service层: ...
- BZOJ 1096 【ZJOI2007】 仓库建设
Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天, ...