Spring Cloud Alibaba 集成分布式定时任务调度功能
import com.alibaba.cloud.schedulerx.SchedulerXReference;
import com.alibaba.cloud.schedulerx.domain.JobInfo;
import com.alibaba.cloud.schedulerx.domain.JobParam;
import com.alibaba.cloud.schedulerx.domain.JobSchedule;
import com.alibaba.cloud.schedulerx.domain.JobServer;
import com.alibaba.cloud.schedulerx.domain.TaskTrigger;
import com.alibaba.cloud.schedulerx.registry.RegistryCenter;
import com.alibaba.cloud.schedulerx.registry.RegistryCenterEnum;
import com.alibaba.cloud.schedulerx.registry.ZookeeperRegistryCenter;
import com.alibaba.fastjson.JSON;
// 注意:以下代码仅为示例,实际使用时需要配置RegistryCenter和SchedulerXReference
public class SchedulerXExample {
public static void main(String[] args) {
// 初始化ZK注册中心客户端
RegistryCenter registryCenter = new ZookeeperRegistryCenter("127.0.0.1:2181");
registryCenter.init();
// 初始化SchedulerXReference
SchedulerXReference schedulerXReference = new SchedulerXReference(registryCenter, RegistryCenterEnum.ZK);
// 创建作业调度信息
JobSchedule jobSchedule = new JobSchedule();
jobSchedule.setCron("0 0/1 * * * ?"); // 每分钟执行一次
jobSchedule.setStartTime(System.currentTimeMillis());
jobSchedule.setEndTime(System.currentTimeMillis() + 1000 * 60 * 60); // 设置作业的结束时间
// 创建作业参数
JobParam jobParam = new JobParam();
jobParam.setParam("{\"name\":\"SchedulerXExample\"}"); // 设置作业参数为JSON字符串
// 创建作业触发器
TaskTrigger taskTrigger = new TaskTrigger();
taskTrigger.setType(1); // 设置触发器类型
// 创建作业信息
JobInfo jobInfo = new JobInfo();
jobInfo.setJobSchedule(jobSchedule);
jobInfo.setJobParam(jobParam);
jobInfo.setTaskTrigger(taskTrigger);
jobInfo.setJobServer(new JobServer());
jobInfo.setTenant("default");
jobInfo.setJobType(1);
jobInfo.setPath("example/SchedulerXExample");
// 调用SchedulerXReference的方法来添加作业
schedulerXReference.addJob(jobInfo);
// 关闭注册中心客户端
registryCenter.close();
}
}
这段代码展示了如何使用\`Sc
评论已关闭