quartz with spring
2020-02-15 00:05
357 查看
package com.sundoctor.quartz.service;
import java.text.ParseException;
import java.util.Date;
import java.util.UUID;
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.quartz.Trigger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service("schedulerService")
public class SchedulerServiceImpl implements SchedulerService {
private Scheduler scheduler;
private JobDetail jobDetail;
@Autowired
public void setJobDetail(@Qualifier("jobDetail") JobDetail jobDetail) {
this.jobDetail = jobDetail;
}
@Autowired
public void setScheduler(@Qualifier("quartzScheduler") Scheduler scheduler) {
this.scheduler = scheduler;
}
@Override
public void schedule(String cronExpression) {
schedule(null, cronExpression);
}
@Override
public void schedule(String name, String cronExpression) {
try {
schedule(name, new CronExpression(cronExpression));
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
@Override
public void schedule(CronExpression cronExpression) {
schedule(null, cronExpression);
}
@Override
public void schedule(String name, CronExpression cronExpression) {
if (name == null || name.trim().equals("")) {
name = UUID.randomUUID().toString();
}
try {
scheduler.addJob(jobDetail, true);
CronTrigger cronTrigger = new CronTrigger(name, Scheduler.DEFAULT_GROUP, jobDetail.getName(),
Scheduler.DEFAULT_GROUP);
cronTrigger.setCronExpression(cronExpression);
scheduler.scheduleJob(cronTrigger);
scheduler.rescheduleJob(name, Scheduler.DEFAULT_GROUP, cronTrigger);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
}
@Override
public void modifyTime(String name,String time)
{
try {
Trigger trigger = scheduler.getTrigger(name, Scheduler.DEFAULT_GROUP);
if (trigger != null && trigger instanceof CronTrigger)
{
System.out.println("modify time");
CronTrigger cronTrigger = (CronTrigger)trigger;
scheduler.unscheduleJob(name, Scheduler.DEFAULT_GROUP);
scheduler.pauseTrigger(name, Scheduler.DEFAULT_GROUP);
schedule(name,time);
// cronTrigger.setCronExpression(time);
// scheduler.resumeTrigger(name, Scheduler.DEFAULT_GROUP);
// System.out.println("modify success");
}
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// } catch (ParseException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
@Override
public void schedule(Date startTime) {
schedule(startTime, null);
}
@Override
public void schedule(String name, Date startTime) {
schedule(name, startTime, null);
}
@Override
public void schedule(Date startTime, Date endTime) {
schedule(startTime, endTime, 0);
}
@Override
public void schedule(String name, Date startTime, Date endTime) {
schedule(name, startTime, endTime, 0);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount) {
schedule(null, startTime, endTime, 0);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount) {
schedule(name, startTime, endTime, 0, 0L);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount, long repeatInterval) {
schedule(null, startTime, endTime, repeatCount, repeatInterval);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount, long repeatInterval) {
if (name == null || name.trim().equals("")) {
name = UUID.randomUUID().toString();
}
try {
scheduler.addJob(jobDetail, true);
SimpleTrigger SimpleTrigger = new SimpleTrigger(name, Scheduler.DEFAULT_GROUP, jobDetail.getName(),
Scheduler.DEFAULT_GROUP, startTime, endTime, repeatCount, repeatInterval);
scheduler.scheduleJob(SimpleTrigger);
scheduler.rescheduleJob(name, Scheduler.DEFAULT_GROUP, SimpleTrigger);
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
}
}
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
- java获取文件路径
- Java NIO
- springcloud-sleuth源码解析1-初始化
- 【小家Spring】Spring IoC是如何使用BeanWrapper和Java内省结合起来给Bean属性赋值的...
- 最全面阐述WebDataBinder理解Spring的数据绑定
- 深入了解数据校验:Java Bean Validation 2.0(JSR380)
- 详述Spring对数据校验支持的核心API:SmartValidator
- Spring方法级别数据校验:@Validated + MethodValidationPostProcessor
- 解决多字段联合逻辑校验问题【享学Spring MVC】
- Spring MVC内置支持的4种内容协商方式【享学Spring MVC】
- HandlerMethodArgumentResolver(三):基于消息转换器的参数处理器【享学Spring MVC】
- ModelAndViewContainer、ModelMap、Model详细介绍【享学Spring MVC】
- SpringBoot实现上传下载(一)
- Vijava 学习笔记之 VCenter连接
- Vijava 学习笔记之 虚拟机连接
- Vijava 学习笔记之 HostSystem 连接
- SpringBoot注解大全详解
- struts2 和velocity 配置后,token的使用
- SpringBoot集成elasticsearch支持字段映射