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
没有合适的资源?快使用搜索试试~ 我知道了~
Quartz任务监控管理
共76个文件
jar:14个
gif:10个
java:8个
5星 · 超过95%的资源 需积分: 49 123 下载量 37 浏览量
2013-07-17
10:52:12
上传
评论 5
收藏 5.6MB RAR 举报
温馨提示
Quartz任务监控管理,类似Windows任务管理器,可以获得运行时的实时监控,查看任务运行状态,动态增加任务,暂停、恢复、移除任务等。网上的资料,供大家应急使用。
资源推荐
资源详情
资源评论
收起资源包目录
Quartz任务监控管理.rar (76个子文件)
quartzMonitor
.project 1KB
WebContent
WEB-INF
lib
junit-4.4.jar 158KB
slf4j-api-1.5.6.jar 22KB
spring.jar 2.81MB
quartz-all-1.6.5.jar 451KB
c3p0-0.9.0.4.jar 479KB
mysql-connector-java-5.1.3-rc-bin.jar 631KB
standard-1.1.2.jar 384KB
slf4j-log4j12-1.5.6.jar 9KB
commons-collections-3.1.jar 546KB
commons-lang-2.1.jar 203KB
log4j-1.2.15.jar 383KB
commons-logging-1.0.4.jar 37KB
spring-test.jar 177KB
jstl-1.1.2.jar 20KB
web.xml 2KB
job.js 3KB
styles
default.css 1KB
admin.css 3KB
birt.css 194B
home.css 10KB
index.jsp 10KB
components
calendar
skins
aqua
dark-bg.gif 85B
menuarrow.gif 49B
active-bg.gif 89B
rowhover-bg.gif 110B
normal-bg.gif 110B
cal.gif 127B
hover-bg.gif 89B
today-bg.gif 1KB
Thumbs.db 9KB
theme.css 6KB
status-bg.gif 116B
title-bg.gif 116B
lang
calendar-en.js 4KB
calendar-zh_CN.js 4KB
calendar-setup.js 9KB
calendar.js 50KB
jquery
jquery.form.js 23KB
jquery-1.3.2.min.js 56KB
META-INF
MANIFEST.MF 39B
list.jsp 4KB
src
quartz.properties 967B
com
sundoctor
example
service
SimpleService.java 741B
MyQuartzJobBean.java 997B
Constant.java 676B
test
SimpleServiceTest.java 2KB
servlet
JobProcessServlet.java 7KB
quartz
service
SchedulerService.java 7KB
SchedulerServiceImpl.java 9KB
dao
QuartzDao.java 2KB
jdbc.properties 722B
log4j.properties 885B
spring
applicationContext-quartz.xml 1020B
applicationContext.xml 2KB
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 320B
org.eclipse.jdt.core.prefs 330B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.core.resources.prefs 100B
org.eclipse.wst.common.component 432B
.jsdtscope 454B
build
classes
quartz.properties 967B
com
sundoctor
example
service
MyQuartzJobBean.class 1KB
SimpleService.class 1KB
Constant.class 1KB
test
SimpleServiceTest.class 2KB
servlet
JobProcessServlet.class 6KB
quartz
service
SchedulerServiceImpl.class 10KB
SchedulerService.class 2KB
dao
QuartzDao.class 3KB
jdbc.properties 722B
log4j.properties 885B
spring
applicationContext-quartz.xml 1020B
applicationContext.xml 2KB
.classpath 842B
共 76 条
- 1
daydayup121
- 粉丝: 3
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页