package com.sundoctor.quartz.service;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.apache.commons.lang.time.DateUtils;
import org.quartz.CronExpression;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.sundoctor.example.Constant;
import com.sundoctor.quartz.dao.QuartzDao;
@Service("schedulerService")
public class SchedulerServiceImpl implements SchedulerService {
private Scheduler scheduler;
private JobDetail jobDetail;
private QuartzDao quartzDao;
private static final Logger logger = LoggerFactory.getLogger(SchedulerServiceImpl.class);
@Autowired
public void setJobDetail(@Qualifier("jobDetail") JobDetail jobDetail) {
this.jobDetail = jobDetail;
}
@Autowired
public void setScheduler(@Qualifier("quartzScheduler") Scheduler scheduler) {
this.scheduler = scheduler;
}
@Autowired
public void setQuartzDao(@Qualifier("quartzDao")QuartzDao quartzDao) {
this.quartzDao = quartzDao;
}
@Override
public void schedule(String cronExpression) {
schedule("", cronExpression);
}
@Override
public void schedule(String name, String cronExpression) {
schedule( name, cronExpression,Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(String name, String cronExpression,String group) {
try {
schedule(name, new CronExpression(cronExpression),group);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
@Override
public void schedule(CronExpression cronExpression) {
schedule(null, cronExpression);
}
@Override
public void schedule(String name, CronExpression cronExpression) {
schedule( name, cronExpression,Scheduler.DEFAULT_GROUP) ;
}
@Override
public void schedule(String name, CronExpression cronExpression,String group) {
if (name == null || name.trim().equals("")) {
name = UUID.randomUUID().toString();
}else{
//在名称后添加UUID,保证名称的唯一性
name +="&"+UUID.randomUUID().toString();
}
try {
scheduler.addJob(jobDetail, true);
CronTrigger cronTrigger = new CronTrigger(name, group, jobDetail.getName(),
Scheduler.DEFAULT_GROUP);
cronTrigger.setCronExpression(cronExpression);
scheduler.scheduleJob(cronTrigger);
scheduler.rescheduleJob(cronTrigger.getName(), cronTrigger.getGroup(), cronTrigger);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
}
@Override
public void schedule(Date startTime) {
schedule(startTime, Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(Date startTime,String group) {
schedule(startTime, null,group);
}
@Override
public void schedule(String name, Date startTime) {
schedule(name, startTime,Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(String name, Date startTime,String group) {
schedule(name, startTime, null,group);
}
@Override
public void schedule(Date startTime, Date endTime) {
schedule(startTime, endTime, Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(Date startTime, Date endTime,String group) {
schedule(startTime, endTime, 0,group);
}
@Override
public void schedule(String name, Date startTime, Date endTime) {
schedule(name, startTime, endTime,Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(String name, Date startTime, Date endTime,String group) {
schedule(name, startTime, endTime, 0,group);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount) {
schedule( startTime, endTime, 0,Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount,String group) {
schedule(null, startTime, endTime, 0,group);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount) {
schedule(name, startTime, endTime, 0, Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount,String group) {
schedule(name, startTime, endTime, 0, 1L,group);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount, long repeatInterval) {
schedule(startTime, endTime, repeatCount, repeatInterval,Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount, long repeatInterval,String group) {
schedule(null, startTime, endTime, repeatCount, repeatInterval,group);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount, long repeatInterval) {
this.schedule( name , startTime, endTime, repeatCount, repeatInterval, Scheduler.DEFAULT_GROUP);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount, long repeatInterval,String group ) {
if (name == null || name.trim().equals("")) {
name = UUID.randomUUID().toString();
}else{
//在名称后添加UUID,保证名称的唯一性
name +="&"+UUID.randomUUID().toString();
}
try {
scheduler.addJob(jobDetail, true);
SimpleTrigger SimpleTrigger = new SimpleTrigger(name, group, jobDetail.getName(),
Scheduler.DEFAULT_GROUP, startTime, endTime, repeatCount, repeatInterval);
scheduler.scheduleJob(SimpleTrigger);
scheduler.rescheduleJob(SimpleTrigger.getName(), SimpleTrigger.getGroup(), SimpleTrigger);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
}
@Override
public void schedule(Map<String,String> map) {
String temp = null;
//实例化SimpleTrigger
SimpleTrigger SimpleTrigger = new SimpleTrigger();
//这些值的设置也可以从外面传入,这里采用默放值
SimpleTrigger.setJobName(jobDetail.getName());
SimpleTrigger.setJobGroup(Scheduler.DEFAULT_GROUP);
SimpleTrigger.setRepeatInterval(1000L);
//设置名称
temp = map.get(Constant.TRIGGERNAME);
if (StringUtils.isEmpty(StringUtils.trim(temp)) ){
temp = UUID.randomUUID().toString();
}else{
//在名称后添加UUID,保证名称的唯一性
temp +="&"+UUID.randomUUID().toString();
}
SimpleTrigger.setName(temp);
//设置Trigger分组
temp = map.get(Constant.TRIGGERGROUP);
if(StringUtils.isEmpty(temp)){
temp = Scheduler.DEFAULT_GROUP;
}
SimpleTrigger.setGroup(temp);
//设置开始时间
temp = map.get(Constant.STARTTIME);
if(StringUtils.isNotEmpty(temp)){
SimpleTrigger.setStartTime(this.parseDate(temp));
}
//设置结束时间
temp = map.get(Constant.ENDTIME);
if(StringUtils.isNotEmpty(temp)){
SimpleTrigger.setEndTime(this.parseDate(temp));
}
//设置执行次数
temp = map.get(Constant.REPEATCOUNT);
if(StringUtils.isNotEmpty(temp) && NumberUtils.toInt(temp) > 0){
SimpleTrigger.setRepeatCount(NumberUtils.toInt(temp));
}
//设置执行时间间隔
temp = map.get(Constant.REPEATINTERVEL);
if(StringUtils.isNotEmpty(temp) && NumberUtils.toLong(temp) > 0){
SimpleTrigger.setRepeatInterval(NumberUtils.toLong(temp)*1000);
}
try {
scheduler.addJob(jobDetail, true);
scheduler.scheduleJob(SimpleTrigger);
scheduler.rescheduleJob(SimpleTrigger.getName(), SimpleTrigger.getGroup(), SimpleTrigger);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
}
@Override
public List<Map<String, Object>> getQrtzT
没有合适的资源?快使用搜索试试~ 我知道了~
QuartzMonitor调度器
共77个文件
jar:14个
gif:10个
java:8个
2星 需积分: 10 28 下载量 117 浏览量
2012-04-27
17:09:20
上传
评论
收藏 6.4MB RAR 举报
温馨提示
作业调度,可以添加,删除,暂停,恢复,自定义开始,结束时间,功能强大,带做别设计,非诚勿扰,
资源推荐
资源详情
资源评论
收起资源包目录
quartzMonitor.rar (77个子文件)
quartzMonitor
src
com
sundoctor
quartz
dao
QuartzDao.java 2KB
service
SchedulerServiceImpl.java 9KB
SchedulerService.java 7KB
example
service
MyQuartzJobBean.java 997B
SimpleService.java 741B
Constant.java 676B
test
SimpleServiceTest.java 2KB
servlet
JobProcessServlet.java 7KB
jdbc.properties 867B
spring
applicationContext.xml 2KB
applicationContext-quartz.xml 1020B
log4j.properties 885B
quartz.properties 967B
.classpath 1KB
.mymetadata 315B
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 320B
org.eclipse.core.resources.prefs 197B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.component 432B
.jsdtscope 454B
org.eclipse.jdt.core.prefs 330B
WebContent
META-INF
MANIFEST.MF 39B
components
calendar
lang
calendar-en.js 4KB
calendar-zh_CN.js 4KB
calendar.js 50KB
calendar-setup.js 9KB
skins
aqua
menuarrow.gif 49B
dark-bg.gif 85B
today-bg.gif 1KB
cal.gif 127B
hover-bg.gif 89B
rowhover-bg.gif 110B
title-bg.gif 116B
status-bg.gif 116B
theme.css 6KB
normal-bg.gif 110B
active-bg.gif 89B
Thumbs.db 9KB
jquery
jquery-1.3.2.min.js 56KB
jquery.form.js 23KB
job.js 3KB
list.jsp 4KB
index.jsp 8KB
styles
default.css 1KB
home.css 10KB
admin.css 3KB
birt.css 194B
WEB-INF
classes
com
sundoctor
quartz
dao
QuartzDao.class 3KB
service
SchedulerService.class 2KB
SchedulerServiceImpl.class 10KB
example
service
MyQuartzJobBean.class 1KB
SimpleService.class 1KB
Constant.class 1KB
test
SimpleServiceTest.class 2KB
servlet
JobProcessServlet.class 6KB
jdbc.properties 867B
spring
applicationContext.xml 2KB
applicationContext-quartz.xml 1020B
log4j.properties 885B
quartz.properties 967B
lib
commons-logging-1.0.4.jar 37KB
quartz-all-1.6.5.jar 451KB
spring-test.jar 177KB
c3p0-0.9.0.4.jar 479KB
jstl-1.1.2.jar 20KB
junit-4.4.jar 158KB
log4j-1.2.15.jar 383KB
spring.jar 2.81MB
slf4j-log4j12-1.5.6.jar 9KB
ojdbc14.jar 1.47MB
standard-1.1.2.jar 384KB
slf4j-api-1.5.6.jar 22KB
commons-collections-3.1.jar 546KB
commons-lang-2.1.jar 203KB
web.xml 2KB
.project 1KB
共 77 条
- 1
资源评论
- yangbin6602014-08-26跑不起来,无语Ing
ycyalex
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计-仿生六足机器人的制作全教程源码+电子元器件+程序代码+线路组件图+安装教程+搭建视频教程
- 基于ROS和webots的xrobot机械臂仿真初探C++源码
- 基于ROS的点焊机器人仿真与控制python源码+文档说明+使用说明+详细注释
- 基于vue实现的细粒度交通时空大数据分析系统+源代码+文档说明
- 安卓大作业-基于Electron的交通时空大数据分析挖掘系统客户端(Android)+源代码+文档说明+界面截图
- 基于Java的朱氏集团客户关系管理系统设计源码
- 基于C++的作业提交与批改系统设计源码
- 基于Vue2的移动端电影资讯网站设计源码
- 高分课程设计作业-基于QT的模仿宝石迷阵游戏C++源码+文档说明+界面截图
- 基于Apache Spark的Spark DistCP重实现设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功