🔨 quartz 工具类.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.orion.ops.framework.job.configuration;
|
package com.orion.ops.framework.job.configuration;
|
||||||
|
|
||||||
import com.orion.ops.framework.common.constant.AutoConfigureOrderConst;
|
import com.orion.ops.framework.common.constant.AutoConfigureOrderConst;
|
||||||
|
import com.orion.ops.framework.job.core.utils.QuartzUtils;
|
||||||
import org.quartz.Scheduler;
|
import org.quartz.Scheduler;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
|
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
|
||||||
@@ -48,7 +49,11 @@ public class OrionQuartzAutoConfiguration {
|
|||||||
*/
|
*/
|
||||||
@Bean(initMethod = "start")
|
@Bean(initMethod = "start")
|
||||||
public Scheduler scheduler(SchedulerFactoryBean schedulerFactoryBean) {
|
public Scheduler scheduler(SchedulerFactoryBean schedulerFactoryBean) {
|
||||||
return schedulerFactoryBean.getScheduler();
|
// 获取 scheduler
|
||||||
|
Scheduler scheduler = schedulerFactoryBean.getScheduler();
|
||||||
|
// 将其设置到 QuartzUtils
|
||||||
|
QuartzUtils.setScheduler(scheduler);
|
||||||
|
return scheduler;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,147 @@
|
|||||||
|
package com.orion.ops.framework.job.core.utils;
|
||||||
|
|
||||||
|
import com.orion.lang.utils.Exceptions;
|
||||||
|
import com.orion.lang.utils.collect.Maps;
|
||||||
|
import org.quartz.*;
|
||||||
|
import org.quartz.spi.MutableTrigger;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* quartz 工具类
|
||||||
|
*
|
||||||
|
* @author Jiahang Li
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 2024/3/27 17:14
|
||||||
|
*/
|
||||||
|
public class QuartzUtils {
|
||||||
|
|
||||||
|
private static Scheduler scheduler;
|
||||||
|
|
||||||
|
private QuartzUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加任务
|
||||||
|
*
|
||||||
|
* @param name name
|
||||||
|
* @param group group
|
||||||
|
* @param cron cron
|
||||||
|
* @param jobClass jobClass
|
||||||
|
*/
|
||||||
|
public static void addJob(String name, String group,
|
||||||
|
String cron, Class<? extends Job> jobClass) {
|
||||||
|
QuartzUtils.addJob(name, group,
|
||||||
|
cron, jobClass,
|
||||||
|
Maps.empty());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加任务
|
||||||
|
*
|
||||||
|
* @param name name
|
||||||
|
* @param group group
|
||||||
|
* @param cron cron
|
||||||
|
* @param jobClass jobClass
|
||||||
|
* @param params params
|
||||||
|
*/
|
||||||
|
public static void addJob(String name, String group,
|
||||||
|
String cron, Class<? extends Job> jobClass,
|
||||||
|
Map<Object, Object> params) {
|
||||||
|
// 生成 job
|
||||||
|
JobDetail jobDetail = JobBuilder.newJob(jobClass)
|
||||||
|
.withIdentity(name, group)
|
||||||
|
.usingJobData(new JobDataMap(params))
|
||||||
|
.storeDurably()
|
||||||
|
.build();
|
||||||
|
// 生成触发器
|
||||||
|
MutableTrigger trigger = CronScheduleBuilder.cronSchedule(cron)
|
||||||
|
.withMisfireHandlingInstructionDoNothing()
|
||||||
|
.build();
|
||||||
|
QuartzUtils.addJob(jobDetail, trigger);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加任务
|
||||||
|
*
|
||||||
|
* @param jobDetail jobDetail
|
||||||
|
* @param trigger trigger
|
||||||
|
*/
|
||||||
|
public static void addJob(JobDetail jobDetail, Trigger trigger) {
|
||||||
|
try {
|
||||||
|
scheduler.scheduleJob(jobDetail, trigger);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw Exceptions.task();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除任务
|
||||||
|
*
|
||||||
|
* @param name name
|
||||||
|
* @param group group
|
||||||
|
*/
|
||||||
|
public static void deleteJob(String name, String group) {
|
||||||
|
try {
|
||||||
|
scheduler.deleteJob(new JobKey(name, group));
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw Exceptions.task();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂停任务
|
||||||
|
*
|
||||||
|
* @param name name
|
||||||
|
* @param group group
|
||||||
|
*/
|
||||||
|
public static void pauseJob(String name, String group) {
|
||||||
|
try {
|
||||||
|
scheduler.pauseJob(new JobKey(name, group));
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw Exceptions.task();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 恢复任务
|
||||||
|
*
|
||||||
|
* @param name name
|
||||||
|
* @param group group
|
||||||
|
*/
|
||||||
|
public static void resumeJob(String name, String group) {
|
||||||
|
try {
|
||||||
|
scheduler.resumeJob(new JobKey(name, group));
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw Exceptions.task();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 立即执行任务
|
||||||
|
*
|
||||||
|
* @param name name
|
||||||
|
* @param group group
|
||||||
|
*/
|
||||||
|
public static void triggerJob(String name, String group) {
|
||||||
|
try {
|
||||||
|
scheduler.triggerJob(new JobKey(name, group));
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw Exceptions.task();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置调度器
|
||||||
|
*
|
||||||
|
* @param scheduler scheduler
|
||||||
|
*/
|
||||||
|
public static void setScheduler(Scheduler scheduler) {
|
||||||
|
if (QuartzUtils.scheduler != null) {
|
||||||
|
// unmodified
|
||||||
|
throw Exceptions.state();
|
||||||
|
}
|
||||||
|
QuartzUtils.scheduler = scheduler;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -24,6 +24,12 @@ spring:
|
|||||||
redisson:
|
redisson:
|
||||||
threads: 4
|
threads: 4
|
||||||
netty-threads: 4
|
netty-threads: 4
|
||||||
|
quartz:
|
||||||
|
properties:
|
||||||
|
org:
|
||||||
|
quartz:
|
||||||
|
threadPool:
|
||||||
|
threadCount: 10
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
api-docs:
|
api-docs:
|
||||||
|
|||||||
@@ -89,9 +89,8 @@ spring:
|
|||||||
#连接池
|
#连接池
|
||||||
threadPool:
|
threadPool:
|
||||||
class: org.quartz.simpl.SimpleThreadPool
|
class: org.quartz.simpl.SimpleThreadPool
|
||||||
threadCount: 10
|
threadCount: 5
|
||||||
threadPriority: 5
|
threadPriority: 5
|
||||||
threadNamePrefix: quartz-
|
|
||||||
threadsInheritContextClassLoaderOfInitializingThread: true
|
threadsInheritContextClassLoaderOfInitializingThread: true
|
||||||
boot:
|
boot:
|
||||||
admin:
|
admin:
|
||||||
|
|||||||
Reference in New Issue
Block a user