Elastic-Job配置步骤

配置手册: 

http://elasticjob.io/docs/elastic-job-lite/02-guide/config-manual/

1、ZK注册中心配置(后面继续分析)

2、作业配置(从底层往上层:Core——Type——Lite)

配置级别配置类配置内容
CoreJobCoreConfiguration用于提供作业核心配置信息,如:作业名称、CRON 表达式、分片总数等。
TypeJobTypeConfiguration有3 个子类分别对应SIMPLE, DATAFLOW 和SCRIPT 类型作业,提供3 种作
业需要的不同配置,如:DATAFLOW 类型是否流式处理或SCRIPT 类型的命
令行等。Simple 和DataFlow 需要指定任务类的路径。
RootJobRootConfiguration有2 个子类分别对应Lite 和Cloud 部署类型,提供不同部署类型所需的配
置,如:Lite 类型的是否需要覆盖本地配置或Cloud 占用CPU 或Memory
数量等。
可以定义分片策略。
http://elasticjob.io/docs/elastic-job-lite/02-guide/job-sharding-strategy/
public class SimpleJobTest {
    // TODO 如果修改了代码,跑之前清空ZK
    public static void main(String[] args) {
        // ZK注册中心
        CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration("localhost:2181", "ejob-standalone"));
        regCenter.init();

        // 数据源,使用DBCP
/*        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/elastic_job_log");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        JobEventConfiguration jobEventConfig = new JobEventRdbConfiguration(dataSource);*/

        // 定义作业核心配置
        // TODO 如果修改了代码,跑之前清空ZK
        JobCoreConfiguration coreConfig = JobCoreConfiguration.newBuilder("MySimpleJob", "0/2 * * * * ?", 4).shardingItemParameters("0=RDP, 1=CORE, 2=SIMS, 3=ECIF").failover(true).build();
        // 定义SIMPLE类型配置
        SimpleJobConfiguration simpleJobConfig = new SimpleJobConfiguration(coreConfig, MySimpleJob.class.getCanonicalName());

        // 作业分片策略
        // 基于平均分配算法的分片策略
        String jobShardingStrategyClass = AverageAllocationJobShardingStrategy.class.getCanonicalName();

        // 定义Lite作业根配置
        // LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).jobShardingStrategyClass(jobShardingStrategyClass).build();
        LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfig).build();

        // 构建Job
        new JobScheduler(regCenter, simpleJobRootConfig).init();
        // new JobScheduler(regCenter, simpleJobRootConfig, jobEventConfig).init();
    }

}

作业配置分为 3级,分别是 JobCoreConfiguration,JobTypeConfiguration和LiteJobConfiguration。 LiteJobConfiguration使用 JobTypeConfiguration,JobTypeConfiguration使用 Job CoreConfiguration,层层嵌套。

 

JobTypeConfiguration根据不同实现类型分为 SimpleJobConfiguration,DataflowJobConfiguration和ScriptJobConfiguration。

E-Job使用 ZK来做分布式协调,所有的配置都会写入到 ZK节点。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于 Elastic-Job 的多配置任务,您可以通过以下步骤进行配置: 1. 首先,您需要在 job-config.xml 中定义多个任务配置,每个任务配置对应一个独立的任务。例如: ```xml <job> <job-name>job1</job-name> ... </job> <job> <job-name>job2</job-name> ... </job> ``` 2. 然后,在 job-scheduler.xml 中配置任务调度器,指定要执行的多个任务。例如: ```xml <job-scheduler> <job-ref name="job1" /> <job-ref name="job2" /> </job-scheduler> ``` 3. 接下来,在您的应用程序中,可以通过 ElasticJobAutoConfiguration 类来自动配置多个任务。例如: ```java @Configuration public class ElasticJobConfig { @Autowired private ZookeeperRegistryCenter registryCenter; @Bean(initMethod = "init") public JobScheduler jobScheduler1(final Job1 job1) { return new SpringJobScheduler(job1, registryCenter, getLiteJobConfiguration(job1.getClass(), "0/10 * * * * ?", 3)); } @Bean(initMethod = "init") public JobScheduler jobScheduler2(final Job2 job2) { return new SpringJobScheduler(job2, registryCenter, getLiteJobConfiguration(job2.getClass(), "0/15 * * * * ?", 3)); } private LiteJobConfiguration getLiteJobConfiguration(final Class<? extends SimpleJob> jobClass, final String cron, final int shardingTotalCount) { // 配置 LiteJobConfiguration // ... } } ``` 这样,您就可以通过多个任务配置来实现 Elastic-Job 的多配置任务了。每个任务都有独立的配置和调度。希望能对您有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值