spring-boot elastic-job整合文檔

spring-boot elastic-job 整合

pom 引用
<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-core</artifactId>
    <version>2.1.5</version>
</dependency>

<!-- 使用springframework自定義命名空間時引入 -->
<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-spring</artifactId>
    <version>2.1.5</version>
</dependency>
application.yml 配置
simpleJob:
  cron: 0/5 * * * * ?
  shardingTotalCount: 4
  shardingItemParameters: 0=Beijing,1=Shanghai,2=Guangzhou,3=shenzhen
server:
  port: ${random.int[10000,19999]}
詳細內容
@Configuration
public class SimpleJobConfig {

    @Resource
    private ZookeeperRegistryCenter regCenter;

    @Bean
    public SpringBootJob simpleJob(){
        return new SpringBootJob();
    }


    @Bean(initMethod = "init")
    public ZookeeperRegistryCenter regCenter(){
        //localhost:2181 表示的是zookeeper地址,多個以,分割 localhost:2181,localhost:2182
        //elastic-job-lite-springboot 表示的是 namespace 空間
        return new ZookeeperRegistryCenter(new ZookeeperConfiguration("localhost:2181"," elastic-job-lite-springboot"));
    }

    @Bean(initMethod = "init")
    public JobScheduler simpleJobScheduler(final SpringBootJob simpleJob, @Value("${simpleJob.cron}") final String cron,
                                           @Value("${simpleJob.shardingTotalCount}") final int shardingTotalCount,
                                           @Value("${simpleJob.shardingItemParameters}") final String shardingItemParameters){

        return new SpringJobScheduler(simpleJob, regCenter, getLiteJobConfiguration(simpleJob.getClass(), cron, shardingTotalCount, shardingItemParameters));
    }

    private LiteJobConfiguration getLiteJobConfiguration(final Class<? extends SimpleJob> jobClass, final String cron, final int shardingTotalCount, final String shardingItemParameters) {
        return LiteJobConfiguration.newBuilder(new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(
                jobClass.getName(), cron, shardingTotalCount).shardingItemParameters(shardingItemParameters).jobParameter(UUID.randomUUID().toString()).build(), jobClass.getCanonicalName())).overwrite(true).build();
    }
}
public class SpringBootJob implements SimpleJob {

    @Override
    public void execute(ShardingContext shardingContext) {
        System.out.println(">>>>>>>>>>>>>>>>>>>" + shardingContext + "<<<<<<<<<<<<<<<<<<<<<<");
    }
}

官網參考git

github源碼github

相關文章
相關標籤/搜索