package com.site.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.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.quartz.CronExpression;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.TriggerKey;
import org.quartz.impl.triggers.CronTriggerImpl;
import org.quartz.impl.triggers.SimpleTriggerImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.druid.support.json.JSONUtils;
import com.site.biz.mapper.QrtzTriggersMapper;
import com.site.biz.model.QrtzTriggers;
import com.site.common.constants.Constants;
import com.site.quartz.dao.QuartzDao;
@Service("schedulerService")
public class SchedulerServiceImpl implements SchedulerService {
private static final Logger log = LoggerFactory.getLogger(SchedulerServiceImpl.class);
private static final String NULLSTRING = null;
private static final Date NULLDATE = null;
@Autowired
private Scheduler scheduler;
@Autowired
private JobDetail jobDetail;
@Autowired
private QuartzDao quartzDao;
@Autowired
private QrtzTriggersMapper qrtzTriggersMapper;
@Override
public List<Map<String, Object>> getQrtzTriggers() {
return quartzDao.getQrtzTriggers();
}
@Override
public List<QrtzTriggers> getQrtzTriggers(String name, String group) {
QrtzTriggers qt = new QrtzTriggers();
qt.setTriggerName(name);
qt.setTriggerGroup(group);
return qrtzTriggersMapper.findAll(qt);
}
@Override
public void schedule(String cronExpression) {
schedule(NULLSTRING, cronExpression);
}
@Override
public void schedule(String name, String cronExpression) {
schedule(name, NULLSTRING, cronExpression);
}
@Override
public void schedule(String name, String group, String cronExpression) {
log.info("# name={} , group={} , cronExpression={}", name, group, cronExpression);
try {
schedule(name, group, new CronExpression(cronExpression));
} catch (ParseException e) {
log.error("#schedule name={} , group={} , cronExpression={} , SchedulerException.message={}", name, group, cronExpression, e.getLocalizedMessage());
throw new IllegalArgumentException(e);
}
}
@Override
public void schedule(CronExpression cronExpression) {
schedule(NULLSTRING, cronExpression);
}
@Override
public void schedule(String name, CronExpression cronExpression) {
schedule(name, NULLSTRING, cronExpression);
}
@Override
public void schedule(String name, String group, CronExpression cronExpression) {
if (isValidExpression(cronExpression)) {
if (name == null || name.trim().equals("")) {
name = UUID.randomUUID().toString();
}
CronTriggerImpl trigger = new CronTriggerImpl();
trigger.setCronExpression(cronExpression);
TriggerKey triggerKey = new TriggerKey(name, group);
trigger.setJobName(jobDetail.getKey().getName());
trigger.setKey(triggerKey);
try {
scheduler.addJob(jobDetail, true);
if (scheduler.checkExists(triggerKey)) {
scheduler.rescheduleJob(triggerKey, trigger);
} else {
scheduler.scheduleJob(trigger);
}
} catch (SchedulerException e) {
log.error("#schedule name={} , group={} , cronExpression={} , SchedulerException.message={}", name, group, cronExpression, e.getLocalizedMessage());
throw new IllegalArgumentException(e);
}
}
}
@Override
public void schedule(Date startTime) {
schedule(startTime, NULLDATE);
}
@Override
public void schedule(Date startTime, String group) {
schedule(startTime, NULLDATE, group);
}
@Override
public void schedule(String name, Date startTime) {
schedule(name, startTime, NULLDATE);
}
@Override
public void schedule(String name, Date startTime, String group) {
schedule(name, startTime, NULLDATE, group);
}
@Override
public void schedule(Date startTime, Date endTime) {
schedule(startTime, endTime, 0);
}
@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, 0);
}
@Override
public void schedule(String name, Date startTime, Date endTime, String group) {
schedule(name, startTime, endTime, 0, group);
}
@Override
public void schedule(Date startTime, int repeatCount) {
schedule(null, startTime, NULLDATE, 0);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount) {
schedule(null, startTime, endTime, 0);
}
@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, 0L);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount, String group) {
schedule(name, startTime, endTime, 0, 0L, group);
}
@Override
public void schedule(Date startTime, int repeatCount, long repeatInterval) {
schedule(null, startTime, NULLDATE, repeatCount, repeatInterval);
}
@Override
public void schedule(Date startTime, Date endTime, int repeatCount, long repeatInterval) {
schedule(null, startTime, endTime, repeatCount, repeatInterval);
}
@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) {
schedule(name, startTime, endTime, repeatCount, repeatInterval, NULLSTRING);
}
@Override
public void schedule(String name, Date startTime, Date endTime, int repeatCount, long repeatInterval, String group) {
log.info("# name={} , startTimie={} , endTime={} , repeatCount={} , repeatInterval={} , group={}", name, startTime, endTime, repeatCount, repeatInterval, group);
if (this.isValidExpression(startTime)) {
if (name == null || name.trim().equals("")) {
name = UUID.randomUUID().toString();
}
TriggerKey triggerKey = new TriggerKey(name, group);
SimpleTriggerImpl trigger = new SimpleTriggerImpl();
trigger.setKey(triggerKey);
trigger.setJobName(jobDetail.getKey().getName());
trigger.setStartTime(startTime);
trigger.setEndTime(endTime);
trigger.setRepeatCount(repeatCount);
trigger.setRepeatInterval(repeatInterval);
try {
scheduler.addJob(jobDetail, true);
if (scheduler.checkExists(triggerKey)) {
scheduler.rescheduleJob(trig
没有合适的资源?快使用搜索试试~ 我知道了~
它是基于Dubbo的分布式系统架构,快速简单的上手,有服务层、前端页面层、定时任务系统、日志系统等.zip
共719个文件
js:271个
java:155个
css:69个
需积分: 1 0 下载量 145 浏览量
2023-08-20
20:47:19
上传
评论
收藏 2.03MB ZIP 举报
温馨提示
springboot、Dubbo、MySQL,源码web系统,框架,代码均经过严格测试,可直接运行,有需要可自取
资源推荐
资源详情
资源评论
收起资源包目录
它是基于Dubbo的分布式系统架构,快速简单的上手,有服务层、前端页面层、定时任务系统、日志系统等.zip (719个子文件)
bootstrap-submenu 5KB
bootstrap-submenu 5KB
.classpath 1KB
bootstrap.css 144KB
bootstrap.css 144KB
bootstrap.css 134KB
bootstrap.min.css 120KB
bootstrap.min.css 120KB
bootstrap.min.css 111KB
jquery-ui.css 36KB
jquery-ui.min.css 31KB
bootstrap-theme.css 26KB
bootstrap-theme.css 26KB
jquery-ui.min.css 25KB
jquery-ui.min.css 25KB
bootstrap-theme.min.css 23KB
bootstrap-theme.min.css 23KB
bootstrap-theme.css 21KB
bootstrap-theme.min.css 19KB
jquery-ui.structure.css 18KB
jquery-ui.theme.css 18KB
jquery-ui.structure.min.css 15KB
jquery-ui.theme.min.css 14KB
jquery-ui-1.10.3.custom.min.css 12KB
jquery-ui-1.10.3.custom.min.css 12KB
jquery.ui.theme.min.css 12KB
jquery.ui.theme.min.css 12KB
jquery.qtip.min.css 9KB
bootstrap-submenu.css 6KB
bootstrap-submenu.css 6KB
datepicker.css 5KB
datepicker.css 5KB
bootstrap-submenu.min.css 5KB
bootstrap-submenu.min.css 5KB
datepicker.css 4KB
datepicker.css 4KB
jquery.ui.datepicker.min.css 3KB
jquery.ui.datepicker.min.css 3KB
layout.css 2KB
jquery.ui.button.min.css 2KB
jquery.ui.button.min.css 2KB
jquery-ui-timepicker-addon.css 2KB
dashboard.css 1KB
layout.css 1KB
jquery.ui.menu.min.css 1KB
jquery.ui.menu.min.css 1KB
jquery.ui.dialog.min.css 1KB
jquery.ui.dialog.min.css 1KB
jquery.ui.slider.min.css 1KB
jquery.ui.slider.min.css 1KB
jquery.ui.resizable.min.css 925B
jquery.ui.resizable.min.css 925B
jquery.ui.core.min.css 924B
jquery.ui.core.min.css 924B
jquery.ui.tabs.min.css 852B
jquery.ui.tabs.min.css 852B
jquery.ui.spinner.min.css 807B
jquery.ui.spinner.min.css 807B
jquery.ui.accordion.min.css 647B
jquery.ui.accordion.min.css 647B
jquery.ui.progressbar.min.css 466B
jquery.ui.progressbar.min.css 466B
jquery.scrollToTop.css 417B
jquery.scrollToTop.css 417B
jquery.ui.tooltip.min.css 296B
jquery.ui.tooltip.min.css 296B
jquery.ui.selectable.min.css 211B
jquery.ui.selectable.min.css 211B
jquery.ui.autocomplete.min.css 198B
jquery.ui.autocomplete.min.css 198B
WdatePicker.css 192B
WdatePicker.css 192B
slave.db 52KB
master.db 52KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
default.ftl 3KB
login.ftl 2KB
index.ftl 427B
toTop.gif 4KB
toTop.gif 4KB
loading.gif 2KB
animated-overlay.gif 2KB
animated-overlay.gif 2KB
img.gif 2KB
img.gif 2KB
img.gif 2KB
img.gif 2KB
datePicker.gif 1KB
datePicker.gif 1KB
.gitignore 101B
.gitignore 84B
.gitignore 81B
.gitignore 81B
.gitignore 81B
.gitignore 75B
.gitignore 15B
.gitignore 10B
.gitignore 10B
.gitignore 10B
共 719 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
白话机器学习
- 粉丝: 9080
- 资源: 7681
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- linux简介及基础教程及特点阐述.txt
- 数据结构课程设计课作业资料
- java简介及基础教程及特点阐述.txt
- 一个简单的数据分析脚本示例,它使用Python和pandas库来读取CSV文件、执行一些基本的数据清洗和转换,并进行简单的可视化
- AD7124+PT100 基于STM32f103的代码 检测多路温度(100~-200)并输出
- CHROME webdriver Version: 125.0.6422.78 win64
- python读取一个CSV文件,对数据进行一些基本的数据清洗和处理,然后进行可视化
- openEuler-20.03-LTS-SP4-aarch64-dvd.zip.001
- openEuler-20.03-LTS-SP4-aarch64-dvd.zip.002
- openEuler-20.03-LTS-SP4-aarch64-dvd.zip.003
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功