<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>
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