随着微服务和分布式架构的普及,很多系统需要管理大量的定时任务。为了满足高效、可靠的任务调度需求,我们将实现一个简易的分布式任务调度系统。该系统可以在多个节点上调度任务,确保任务的高可用性,防止任务重复执行。
代码实现:
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.locks.*;
import java.text.SimpleDateFormat;
// 定义一个任务接口
interface Task {
void execute();
}
// 定时任务调度器类
public class DistributedTaskScheduler {
// 用于存储每个节点的任务列表
private Map<String, ScheduledExecutorService> taskExecutors;
// 锁对象,防止多节点竞争
private static final ReentrantLock lock = new ReentrantLock();
// 配置任务周期
private static final long TASK_PERIOD = 5; // 任务周期:每5秒执行一次
// 定义一个任务调度器
public DistributedTaskScheduler() {
taskExecutors = new HashMap<>();
}
// 启动任务调度
public