版权声明:请附链接,自由转载 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