添加依賴(
3.0.1
是目前最新的
Releases
版本):
<dependency>
<groupId>org.apache.shardingsphere.elasticjob</groupId>
<artifactId>elasticjob-lite-core</artifactId>
<version>3.0.1</version>
</dependency>
本篇部落格介紹一次性排程,之前的排程都是定時排程(通過
ScheduleJobBootstrap
類),現在來介紹一次性調用。實作一次性調用其實非常簡單,隻需要将
ScheduleJobBootstrap
類換成
OneOffJobBootstrap
類即可,并且作業配置不能配置
cron
時間表達式。
package com.kaven.job;
import com.kaven.job.my.MyKavenJob;
import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.lite.api.bootstrap.impl.OneOffJobBootstrap;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
import org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperConfiguration;
import org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter;
/**
* @Author: ITKaven
* @Date: 2021/11/20 17:05
* @Leetcode: https://leetcode-cn.com/u/kavenit
* @Notes:
*/
public class Application {
public static void main(String[] args) {
OneOffJobBootstrap oneOffJobBootstrap = new OneOffJobBootstrap(createRegistryCenter(), new MyKavenJob(),
createJobConfiguration());
oneOffJobBootstrap.execute();
}
private static CoordinatorRegistryCenter createRegistryCenter() {
ZookeeperConfiguration zc = new ZookeeperConfiguration("192.168.1.200:9999", "my-job");
zc.setConnectionTimeoutMilliseconds(40000);
zc.setMaxRetries(5);
CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(zc);
regCenter.init();
return regCenter;
}
private static JobConfiguration createJobConfiguration() {
String jobs = "0=看論文,1=做實驗,2=打比賽,3=開組會,4=看書,5=其他";
return JobConfiguration.newBuilder("MyOneOffJob", 6)
.shardingItemParameters(jobs)
.overwrite(true)
.build();
}
}
輸出如下圖所示: