分布式定时任务 Elastic Job 开发使用篇(结合Spring Boot开发分布式任务调度)
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.dangdang.ddframe.job.config.JobCoreConfiguration;
import com.dangdang.ddframe.job.config.simple.SimpleJobConfiguration;
import com.dangdang.ddframe.job.lite.api.JobScheduler;
import com.dangdang.ddframe.job.lite.config.LiteJobConfiguration;
import com.dangdang.ddframe.job.reg.base.CoordinatorRegistryCenter;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperConfiguration;
import com.dangdang.ddframe.job.reg.zookeeper.ZookeeperRegistryCenter;
public class ElasticJobDemo {
public static void main(final String[] args) {
// 配置作业注册中心.
CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration("localhost:2181", "elastic-job-demo"));
// 初始化作业
SimpleJob simpleJob = new MyElasticJob();
// 定义作业核心配置
JobCoreConfiguration simpleCoreConfig = JobCoreConfiguration.newBuilder("demoSimpleJob", "0/15 * * * * ?", 10).build();
// 定义作业根配置
SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(simpleCoreConfig, simpleJob.getClass().getCanonicalName());
// 创建作业调度器
JobScheduler simpleJobScheduler = new JobScheduler(simpleJob, regCenter, LiteJobConfiguration.newBuilder(simpleJobConfig).build());
// 启动调度器
simpleJobScheduler.init();
}
}
class MyElasticJob implements SimpleJob {
@Override
public void execute(ShardingContext context) {
// 实现作业的具体逻辑
System.out.println("作业执行,分片项:" + context.getShardingItem());
}
}
这段代码展示了如何在Elastic Job中创建和启动一个简单的分布式定时任务。首先,我们配置了注册中心,并初始化了作业。然后,我们定义了作业的核心配置,包括作业的名称、执行时间和分片数量。最后,我们创建了作业调度器并启动它。在MyElasticJob
类中,我们实现了SimpleJob
接口,并在execute
方法中编写了作业的具体逻辑。这个例子简单明了地展示了如何使用Elastic Job来进行分布式任务的调度。
评论已关闭