Change to record

This commit is contained in:
Looly 2025-10-10 23:01:33 +08:00
parent bf2509f9bc
commit c4aa2b0841
3 changed files with 9 additions and 38 deletions

View File

@ -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();

View File

@ -25,47 +25,16 @@ import cn.hutool.v7.cron.task.Task;
* 作业执行器唯一关联一个作业负责管理作业的运行的生命周期
*
* @author Looly
*/
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 被执行的任务
* @param cronTask 被执行的任务
*/
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);

View File

@ -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());
}
});