mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-12-07 09:39:01 +08:00
Change to record
This commit is contained in:
parent
bf2509f9bc
commit
c4aa2b0841
@ -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();
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user