From 0f98ec728d0403b1726273d94dc00f06993888b6 Mon Sep 17 00:00:00 2001
From: chenjiantian <214228265@qq.com>
Date: 星期四, 16 十二月 2021 18:36:01 +0800
Subject: [PATCH] 灯模块
---
sandu-common/src/main/java/com/sandu/common/quartz/service/QuartzServiceImpl.java | 51 ++++++++++++++++++++++++++++-----------------------
1 files changed, 28 insertions(+), 23 deletions(-)
diff --git a/sandu-common/src/main/java/com/sandu/common/quartz/service/QuartzServiceImpl.java b/sandu-common/src/main/java/com/sandu/common/quartz/service/QuartzServiceImpl.java
index ec54efb..538c1f4 100644
--- a/sandu-common/src/main/java/com/sandu/common/quartz/service/QuartzServiceImpl.java
+++ b/sandu-common/src/main/java/com/sandu/common/quartz/service/QuartzServiceImpl.java
@@ -1,14 +1,16 @@
package com.sandu.common.quartz.service;
import com.sandu.common.execption.BusinessException;
-import com.sandu.common.quartz.ExecutionJob;
-import com.sandu.common.quartz.dto.QuartzJobDto;
import lombok.extern.slf4j.Slf4j;
import org.quartz.*;
+import org.quartz.impl.triggers.CronTriggerImpl;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Service;
+
import javax.annotation.Resource;
+import java.util.Date;
+import java.util.Map;
/**
* @author chenjiantian
@@ -24,20 +26,22 @@
private Scheduler scheduler;
@Override
- public void addJob(Class<? extends QuartzJobBean> jobClass, QuartzJobDto quartzJobDto) {
+ public void addJob(Class<? extends QuartzJobBean> jobClass, Long jobId, String cron, Map<String, Object> jobData) {
try {
String simpleName = jobClass.getSimpleName();
- JobDetail jobDetail = JobBuilder.newJob(ExecutionJob.class)
- .withIdentity(simpleName + quartzJobDto.getId())
+ JobDetail jobDetail = JobBuilder.newJob(jobClass)
+ .withIdentity(simpleName + jobId)
.build();
CronTrigger cronTrigger = TriggerBuilder.newTrigger()
- .withIdentity(simpleName + quartzJobDto.getId())
- .withSchedule(CronScheduleBuilder.cronSchedule(quartzJobDto.getCronExpression()))
+ .withIdentity(simpleName + jobId)
+ .startNow()
+ .withSchedule(CronScheduleBuilder.cronSchedule(cron))
.build();
- cronTrigger.getJobDataMap().put(QuartzJobDto.JOB_KEY, quartzJobDto);
-
+ cronTrigger.getJobDataMap().putAll(jobData);
+ ((CronTriggerImpl) cronTrigger).setStartTime(new Date());
scheduler.scheduleJob(jobDetail, cronTrigger);
+ log.info("娣诲姞瀹氭椂鍣▄}", simpleName + jobId);
} catch (SchedulerException e) {
log.error("鍒涘缓瀹氭椂浠诲姟澶辫触", e);
throw new BusinessException("鍒涘缓瀹氭椂浠诲姟澶辫触");
@@ -45,17 +49,17 @@
}
@Override
- public void updateJobCron(Class<? extends QuartzJobBean> jobClass, QuartzJobDto quartzJobDto) {
+ public void updateJobCron(Class<? extends QuartzJobBean> jobClass, Long jobId, String cron, Map<String, Object> jobData) {
try {
- TriggerKey triggerKey = TriggerKey.triggerKey(jobClass.getSimpleName() + quartzJobDto.getId());
+ TriggerKey triggerKey = TriggerKey.triggerKey(jobClass.getSimpleName() + jobId);
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
if (trigger == null) {
- addJob(jobClass, quartzJobDto);
+ addJob(jobClass, jobId, cron, jobData);
trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
}
- CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(quartzJobDto.getCronExpression());
+ CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();
- trigger.getJobDataMap().put(QuartzJobDto.JOB_KEY, quartzJobDto);
+ trigger.getJobDataMap().putAll(jobData);
scheduler.rescheduleJob(triggerKey, trigger);
} catch (SchedulerException e) {
@@ -70,6 +74,7 @@
JobKey jobKey = JobKey.jobKey(jobClass.getSimpleName() + jobId);
scheduler.pauseJob(jobKey);
scheduler.deleteJob(jobKey);
+ log.info("鍒犻櫎瀹氭椂鍣▄}", jobClass.getSimpleName() + jobId);
} catch (SchedulerException e) {
log.error("鍒犻櫎瀹氭椂浠诲姟澶辫触", e);
throw new BusinessException("鍒犻櫎瀹氭椂浠诲姟澶辫触");
@@ -88,15 +93,15 @@
}
@Override
- public void resumeJob(Class<? extends QuartzJobBean> jobClass, QuartzJobDto quartzJobDto) {
+ public void resumeJob(Class<? extends QuartzJobBean> jobClass, Long jobId, String cron, Map<String, Object> jobData) {
try {
- TriggerKey triggerKey = TriggerKey.triggerKey(jobClass.getSimpleName() + quartzJobDto.getId());
+ TriggerKey triggerKey = TriggerKey.triggerKey(jobClass.getSimpleName() + jobId);
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
// 濡傛灉涓嶅瓨鍦ㄥ垯鍒涘缓涓�涓畾鏃朵换鍔�
if (trigger == null) {
- addJob(jobClass, quartzJobDto);
+ addJob(jobClass, jobId, cron, jobData);
}
- JobKey jobKey = JobKey.jobKey(jobClass.getSimpleName() + quartzJobDto.getId());
+ JobKey jobKey = JobKey.jobKey(jobClass.getSimpleName() + jobId);
scheduler.resumeJob(jobKey);
} catch (Exception e) {
log.error("鎭㈠瀹氭椂浠诲姟澶辫触", e);
@@ -105,17 +110,17 @@
}
@Override
- public void runJobNow(Class<? extends QuartzJobBean> jobClass, QuartzJobDto quartzJobDto) {
+ public void runJobNow(Class<? extends QuartzJobBean> jobClass, Long jobId, String cron, Map<String, Object> jobData) {
try {
- TriggerKey triggerKey = TriggerKey.triggerKey(jobClass.getSimpleName() + quartzJobDto.getId());
+ TriggerKey triggerKey = TriggerKey.triggerKey(jobClass.getSimpleName() + jobId);
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
// 濡傛灉涓嶅瓨鍦ㄥ垯鍒涘缓涓�涓畾鏃朵换鍔�
if (trigger == null) {
- addJob(jobClass, quartzJobDto);
+ addJob(jobClass, jobId, cron, jobData);
}
JobDataMap dataMap = new JobDataMap();
- dataMap.put(QuartzJobDto.JOB_KEY, quartzJobDto);
- JobKey jobKey = JobKey.jobKey(jobClass.getSimpleName() + quartzJobDto.getId());
+ dataMap.putAll(jobData);
+ JobKey jobKey = JobKey.jobKey(jobClass.getSimpleName() + jobId);
scheduler.triggerJob(jobKey, dataMap);
} catch (Exception e) {
log.error("瀹氭椂浠诲姟鎵ц澶辫触", e);
--
Gitblit v1.9.3