Elastic Job初探

版权声明:请附链接,自由转载 https://blog.csdn.net/kangkanglou/article/details/82777098

注册中心配置

@Configuration
public class RegistryCenterConfig {

    @Value("${reg-center.server-list}")
    private String serverList;
    @Value("${reg-center.namespace}")
    private String namespace;

    @Bean(initMethod = "init")
    public ZookeeperRegistryCenter regCenter() {
        return new ZookeeperRegistryCenter(new ZookeeperConfiguration(serverList, namespace));
    }

}

作业属性

@Configuration
public class MonitorJobProperties {
    @Value("${monitor.cron}")
    private String cron;

    @Value("${monitor.sharding-total-count}")
    private int shardingTotalCount;

    @Value("${monitor.sharding-item-parameters}")
    private String shardingItemParameters;

    @Value("${monitor.job-description}")
    private String jobDescription;

    @Value("${monitor.job-parameter}")
    private String jobParameter;

    @Autowired
    private ServiceMonitor serviceMonitor;

    @Bean
    public LiteJobConfiguration liteJobConfiguration() {
        JobCoreConfiguration.Builder builder = JobCoreConfiguration.newBuilder(serviceMonitor.getClass().getName()
                , cron, shardingTotalCount);
        JobCoreConfiguration jobCoreConfiguration = builder
                .shardingItemParameters(shardingItemParameters)
                .description(jobDescription)
                .jobParameter(jobParameter)
                .build();
        SimpleJobConfiguration simpleJobConfiguration = new SimpleJobConfiguration(jobCoreConfiguration, serviceMonitor.getClass().getCanonicalName());
        return LiteJobConfiguration
                .newBuilder(simpleJobConfiguration)
                .overwrite(true)
                .build();
    }

}

作业配置

@Configuration
public class MonitorJobConfig {

    @Autowired
    private ZookeeperRegistryCenter regCenter;

    @Autowired
    private ServiceMonitor serviceMonitor;

    @Autowired
    private LiteJobConfiguration liteJobConfiguration;

    @Bean(initMethod = "init")
    public JobScheduler simpleJobScheduler() {
        return new SpringJobScheduler(serviceMonitor
                , regCenter
                , liteJobConfiguration);
    }
}

作业

@Component
@Slf4j
public class ServiceMonitor implements SimpleJob {

    @Override
    public void execute(ShardingContext shardingContext) {
        log.info("sharding context is {}", shardingContext);
    }
}

应用配置

server:
  port: 8766

spring:
  application:
    name: cib-scheduler-service

reg-center:
  server-list: "192.168.43.61:2181"
  namespace: elastic-job-lite-spring-boot

monitor:
  cron: 0/5 * * * * ?
  sharding-total-count: 2
  sharding-item-parameters: 0=CIB,1=ICBC
  job-description: "监控作业"
  job-parameter: "hello elastic job"

在这里插入图片描述

更多源码链接:
https://github.com/ypmc/spring-cloud/tree/master/spring-elastic-job

猜你喜欢

转载自blog.csdn.net/kangkanglou/article/details/82777098
今日推荐