diff --git a/hutool-cron/src/main/java/cn/hutool/v7/cron/Scheduler.java b/hutool-cron/src/main/java/cn/hutool/v7/cron/Scheduler.java index 5d9c65517..db4e108d7 100644 --- a/hutool-cron/src/main/java/cn/hutool/v7/cron/Scheduler.java +++ b/hutool-cron/src/main/java/cn/hutool/v7/cron/Scheduler.java @@ -31,6 +31,7 @@ import cn.hutool.v7.cron.task.Task; import cn.hutool.v7.log.LogUtil; import cn.hutool.v7.setting.Setting; +import java.io.Serial; import java.io.Serializable; import java.util.LinkedHashMap; import java.util.Map.Entry; @@ -69,6 +70,7 @@ import java.util.concurrent.locks.ReentrantLock; * */ public class Scheduler implements Serializable { + @Serial private static final long serialVersionUID = 1L; private final Lock lock = new ReentrantLock(); diff --git a/hutool-cron/src/main/java/cn/hutool/v7/cron/TaskExecutor.java b/hutool-cron/src/main/java/cn/hutool/v7/cron/TaskExecutor.java index b79169f66..c0bc0de9f 100644 --- a/hutool-cron/src/main/java/cn/hutool/v7/cron/TaskExecutor.java +++ b/hutool-cron/src/main/java/cn/hutool/v7/cron/TaskExecutor.java @@ -25,47 +25,16 @@ import cn.hutool.v7.cron.task.Task; * 作业执行器唯一关联一个作业,负责管理作业的运行的生命周期。 * * @author Looly + * @param scheduler 调度器 + * @param cronTask 被执行的任务 */ -public class TaskExecutor implements Runnable { - - private final Scheduler scheduler; - private final CronTask task; - - /** - * 获得原始任务对象 - * - * @return 任务对象 - */ - public Task getTask() { - return this.task.getRaw(); - } - - /** - * 获得原始任务对象 - * - * @return 任务对象 - * @since 5.4.7 - */ - public CronTask getCronTask() { - return this.task; - } - - /** - * 构造 - * - * @param scheduler 调度器 - * @param task 被执行的任务 - */ - public TaskExecutor(final Scheduler scheduler, final CronTask task) { - this.scheduler = scheduler; - this.task = task; - } +public record TaskExecutor(Scheduler scheduler, CronTask cronTask) implements Runnable { @Override public void run() { try { scheduler.listenerManager.notifyTaskStart(this); - task.execute(); + cronTask.execute(); scheduler.listenerManager.notifyTaskSucceeded(this); } catch (final Exception e) { scheduler.listenerManager.notifyTaskFailed(this, e); diff --git a/hutool-cron/src/test/java/cn/hutool/v7/cron/demo/CronTest.java b/hutool-cron/src/test/java/cn/hutool/v7/cron/demo/CronTest.java index 1ce75ba3a..8b0d88966 100644 --- a/hutool-cron/src/test/java/cn/hutool/v7/cron/demo/CronTest.java +++ b/hutool-cron/src/test/java/cn/hutool/v7/cron/demo/CronTest.java @@ -61,17 +61,17 @@ public class CronTest { CronUtil.getScheduler().addListener(new TaskListener() { @Override public void onStart(final TaskExecutor executor) { - Console.log("Found task:[{}] start!", executor.getCronTask().getId()); + Console.log("Found task:[{}] start!", executor.cronTask().getId()); } @Override public void onSucceeded(final TaskExecutor executor) { - Console.log("Found task:[{}] success!", executor.getCronTask().getId()); + Console.log("Found task:[{}] success!", executor.cronTask().getId()); } @Override public void onFailed(final TaskExecutor executor, final Throwable exception) { - Console.error("Found task:[{}] failed!", executor.getCronTask().getId()); + Console.error("Found task:[{}] failed!", executor.cronTask().getId()); } });