From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/QuartzJobUtil.java | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/QuartzJobUtil.java b/jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/QuartzJobUtil.java
new file mode 100644
index 0000000..42eac3e
--- /dev/null
+++ b/jnpf-flowable/jnpf-flowable-biz/src/main/java/jnpf/flowable/job/QuartzJobUtil.java
@@ -0,0 +1,73 @@
+package jnpf.flowable.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.*;
+import org.quartz.impl.StdSchedulerFactory;
+
+import java.util.Date;
+
+/**
+ * 绫荤殑鎻忚堪
+ *
+ * @author JNPF@YinMai Info. Co., Ltd
+ * @version 5.0.x
+ * @since 2024/9/20 16:48
+ */
+@Slf4j
+public class QuartzJobUtil {
+
+ private QuartzJobUtil() {
+ }
+
+ private static final SchedulerFactory schedulerFactory = new StdSchedulerFactory();
+
+ public static void addJob(String jobName, String cron, Class<? extends Job> jobClass, JobDataMap jobDataMap, Date startDate, Date endDate) {
+ if (jobDataMap == null) {
+ jobDataMap = new JobDataMap();
+ }
+ JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobName).setJobData(jobDataMap).build();
+ Trigger trigger = TriggerBuilder.newTrigger()
+ .forJob(jobDetail)
+ .withIdentity(jobName)
+ .withSchedule(CronScheduleBuilder.cronSchedule(cron))
+ .startAt(startDate == null ? new Date() : startDate)
+ .endAt(endDate != null ? endDate : null)
+ .build();
+ try {
+ //鑾峰彇瀹炰緥鍖栫殑 Scheduler銆�
+ Scheduler scheduler = getScheduler();
+ //灏嗕换鍔″強鍏惰Е鍙戝櫒鏀惧叆璋冨害鍣�
+ scheduler.scheduleJob(jobDetail, trigger);
+ //璋冨害鍣ㄥ紑濮嬭皟搴︿换鍔�
+ if (!scheduler.isShutdown()) {
+ scheduler.start();
+ }
+ } catch (SchedulerException e) {
+ log.error("鏂板璋冨害澶辫触:" + e.getMessage());
+ }
+ }
+
+ private static Scheduler getScheduler() {
+ try {
+ return schedulerFactory.getScheduler();
+ } catch (SchedulerException e) {
+ e.getMessage();
+ }
+ return null;
+ }
+
+ public static void deleteJob(String jobName) {
+ try {
+ TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
+ Scheduler scheduler = getScheduler();
+ if (null != scheduler) {
+ scheduler.pauseTrigger(triggerKey);
+ scheduler.unscheduleJob(triggerKey);
+ scheduler.deleteJob(JobKey.jobKey(jobName));
+ }
+
+ } catch (SchedulerException e) {
+ e.getMessage();
+ }
+ }
+}
--
Gitblit v1.8.0