xxl-job: v2.0.2 原理 目錄學(xué)習(xí)
- 0. xxl-job原理
- 1. xxl-job原理---定時(shí)任務(wù)架構(gòu)
- 2. xxl-job原理-- 調(diào)度中心
- 3. xxl-job原理-- 執(zhí)行器注冊(cè)
- 4. xxl-job原理-- 執(zhí)行器注冊(cè)問(wèn)題
- 5 xxl-job原理-- 執(zhí)行器注冊(cè)問(wèn)題
- 6. xxl-job 原理-- 調(diào)度中心注冊(cè)
- 7. xxl-job 原理-- 任務(wù)管理
- 8. xxl-job 原理-- 任務(wù)執(zhí)行或觸發(fā)
- 9. xxl-job原理-- jobthread的作用
- 10. xxl-job原理---回調(diào)
實(shí)現(xiàn)自我注冊(cè)
properties
executor.appName=hahaha
executor.appPort=9999
XxlJobAdminConfig
@Value("${executor.appName}")
private String appName;
@Value("${executor.appPort}")
private int appPort;
public int getAppPort() {
appPort = appPort > 0 ? appPort : NetUtil.findAvailablePort(9999);
return appPort;
}
private String getAppIp() throws UnknownHostException {
InetAddress addr = InetAddress.getLocalHost();
String address = "";
if (addr.toString().indexOf("/") != -1) {
address = addr.toString().substring((addr.toString().indexOf("/") + 1));
} else {
address = addr.toString();
}
return address;
}
@Bean
RegistryParam getRegistryParam() throws UnknownHostException {
return new RegistryParam("EXECUTOR", appName, getAppIp().concat(String.valueOf(getAppPort())));
}
// init executor-server
private void initRpcProvider() throws UnknownHostException, Exception {
initRpcProvider(getAppIp(), getAppPort(), appName, null);
}
private void initRpcProvider(String ip, int port, String appName, String accessToken) throws Exception {
// init, provider factory
String address = IpUtil.getIpPort(ip, port);
Map<String, String> serviceRegistryParam = new HashMap<String, String>();
serviceRegistryParam.put("appName", appName);
serviceRegistryParam.put("address", address);
XxlRpcProviderFactory xxlRpcProviderFactory = new XxlRpcProviderFactory();
xxlRpcProviderFactory = new XxlRpcProviderFactory();
xxlRpcProviderFactory.initConfig(NetEnum.NETTY_HTTP, Serializer.SerializeEnum.HESSIAN.getSerializer(), ip, port, accessToken, XxlJobExecutor.ExecutorServiceRegistry.class, serviceRegistryParam);
// add services
xxlRpcProviderFactory.addService(ExecutorBiz.class.getName(), null, new ExecutorBizImpl());
// start
xxlRpcProviderFactory.start();
}
tips: 這里的InitRpcProvider埋酬,指的是實(shí)現(xiàn) init executor server , 后臺(tái)會(huì)開(kāi)啟執(zhí)行器注冊(cè)thread, 開(kāi)啟執(zhí)行器的server, port為9999
PS: 若你覺(jué)得可以仗岖、還行、過(guò)得去、甚至不太差的話,可以“關(guān)注”一下,就此謝過(guò)!