fix:bug修复

This commit is contained in:
Xiang
2026-01-14 17:03:14 +08:00
parent 5fb186a85b
commit 64d7ca9b67
3 changed files with 9 additions and 8 deletions

View File

@@ -2,7 +2,7 @@ server:
port: 30030 port: 30030
spring: spring:
profiles: profiles:
active: prod active: test
application: application:
name: xservice-quartz-admin name: xservice-quartz-admin
main: main:

View File

@@ -38,7 +38,7 @@ public class JobScheduler {
// 1⃣ 未配置 or 未启用 → 停止 // 1⃣ 未配置 or 未启用 → 停止
if (Objects.isNull(cfg) || Objects.equals(cfg.getJobSwitch(), 0)) { if (Objects.isNull(cfg) || Objects.equals(cfg.getJobSwitch(), 0)) {
job.setCron(null); job.setCron(null);
cancel(jobName); cancel(job);
return; return;
} }
@@ -51,20 +51,21 @@ public class JobScheduler {
} }
// 3⃣ 先取消旧任务 // 3⃣ 先取消旧任务
cancel(jobName); cancel(job);
// 4⃣ 创建新任务 // 4⃣ 创建新任务
job.setCron(newCron); job.setCron(newCron);
job.setEnabled(true);
ScheduledFuture<?> future = this.schedule(job); ScheduledFuture<?> future = this.schedule(job);
scheduledTasks.put(jobName, future); scheduledTasks.put(jobName, future);
} }
private void cancel(String jobName) { private void cancel(JobDefinition job) {
ScheduledFuture<?> future = scheduledTasks.remove(jobName); ScheduledFuture<?> future = scheduledTasks.remove(job.getName());
if (future != null) { if (future != null) {
// false 不中断当前任务,等待任务完成 // false 不中断当前任务,等待任务完成
future.cancel(true); future.cancel(true);
triggerRoute.route(job).cancel(job.getName());
} }
} }
} }

View File

@@ -23,7 +23,7 @@ public class LocalJobTrigger implements JobTrigger {
@Override @Override
public void trigger(JobDefinition job) { public void trigger(JobDefinition job) {
if (!job.isEnabled()) { if (!job.isEnabled()) {
log.info("job {} disabled, skip execution", job.getName()); // log.info("job {} disabled, skip execution", job.getName());
return; return;
} }
@@ -32,7 +32,7 @@ public class LocalJobTrigger implements JobTrigger {
); );
if (!flag.compareAndSet(false, true)) { if (!flag.compareAndSet(false, true)) {
log.warn("job {} is already running, skip", job.getName()); // log.warn("job {} is already running, skip", job.getName());
return; return;
} }