|
@@ -2,6 +2,7 @@ package com.xxl.job.core.executor;
|
|
|
|
|
|
import com.xxl.job.core.biz.AdminBiz;
|
|
import com.xxl.job.core.biz.AdminBiz;
|
|
import com.xxl.job.core.biz.ExecutorBiz;
|
|
import com.xxl.job.core.biz.ExecutorBiz;
|
|
|
|
+import com.xxl.job.core.biz.client.AdminBizClient;
|
|
import com.xxl.job.core.biz.impl.ExecutorBizImpl;
|
|
import com.xxl.job.core.biz.impl.ExecutorBizImpl;
|
|
import com.xxl.job.core.handler.IJobHandler;
|
|
import com.xxl.job.core.handler.IJobHandler;
|
|
import com.xxl.job.core.log.XxlJobFileAppender;
|
|
import com.xxl.job.core.log.XxlJobFileAppender;
|
|
@@ -11,12 +12,10 @@ import com.xxl.job.core.thread.JobThread;
|
|
import com.xxl.job.core.thread.TriggerCallbackThread;
|
|
import com.xxl.job.core.thread.TriggerCallbackThread;
|
|
import com.xxl.rpc.registry.ServiceRegistry;
|
|
import com.xxl.rpc.registry.ServiceRegistry;
|
|
import com.xxl.rpc.remoting.invoker.XxlRpcInvokerFactory;
|
|
import com.xxl.rpc.remoting.invoker.XxlRpcInvokerFactory;
|
|
-import com.xxl.rpc.remoting.invoker.call.CallType;
|
|
|
|
-import com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean;
|
|
|
|
-import com.xxl.rpc.remoting.invoker.route.LoadBalance;
|
|
|
|
-import com.xxl.rpc.remoting.net.NetEnum;
|
|
|
|
|
|
+import com.xxl.rpc.remoting.net.impl.netty_http.server.NettyHttpServer;
|
|
import com.xxl.rpc.remoting.provider.XxlRpcProviderFactory;
|
|
import com.xxl.rpc.remoting.provider.XxlRpcProviderFactory;
|
|
import com.xxl.rpc.serialize.Serializer;
|
|
import com.xxl.rpc.serialize.Serializer;
|
|
|
|
+import com.xxl.rpc.serialize.impl.HessianSerializer;
|
|
import com.xxl.rpc.util.IpUtil;
|
|
import com.xxl.rpc.util.IpUtil;
|
|
import com.xxl.rpc.util.NetUtil;
|
|
import com.xxl.rpc.util.NetUtil;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -105,35 +104,18 @@ public class XxlJobExecutor {
|
|
// destory TriggerCallbackThread
|
|
// destory TriggerCallbackThread
|
|
TriggerCallbackThread.getInstance().toStop();
|
|
TriggerCallbackThread.getInstance().toStop();
|
|
|
|
|
|
- // destory invoker
|
|
|
|
- stopInvokerFactory();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
// ---------------------- admin-client (rpc invoker) ----------------------
|
|
// ---------------------- admin-client (rpc invoker) ----------------------
|
|
private static List<AdminBiz> adminBizList;
|
|
private static List<AdminBiz> adminBizList;
|
|
- private static Serializer serializer;
|
|
|
|
|
|
+ private static Serializer serializer = new HessianSerializer();
|
|
private void initAdminBizList(String adminAddresses, String accessToken) throws Exception {
|
|
private void initAdminBizList(String adminAddresses, String accessToken) throws Exception {
|
|
- serializer = Serializer.SerializeEnum.HESSIAN.getSerializer();
|
|
|
|
if (adminAddresses!=null && adminAddresses.trim().length()>0) {
|
|
if (adminAddresses!=null && adminAddresses.trim().length()>0) {
|
|
for (String address: adminAddresses.trim().split(",")) {
|
|
for (String address: adminAddresses.trim().split(",")) {
|
|
if (address!=null && address.trim().length()>0) {
|
|
if (address!=null && address.trim().length()>0) {
|
|
|
|
|
|
- String addressUrl = address.concat(AdminBiz.MAPPING);
|
|
|
|
-
|
|
|
|
- AdminBiz adminBiz = (AdminBiz) new XxlRpcReferenceBean(
|
|
|
|
- NetEnum.NETTY_HTTP,
|
|
|
|
- serializer,
|
|
|
|
- CallType.SYNC,
|
|
|
|
- LoadBalance.ROUND,
|
|
|
|
- AdminBiz.class,
|
|
|
|
- null,
|
|
|
|
- 3000,
|
|
|
|
- addressUrl,
|
|
|
|
- accessToken,
|
|
|
|
- null,
|
|
|
|
- null
|
|
|
|
- ).getObject();
|
|
|
|
|
|
+ AdminBiz adminBiz = new AdminBizClient(address.trim(), accessToken);
|
|
|
|
|
|
if (adminBizList == null) {
|
|
if (adminBizList == null) {
|
|
adminBizList = new ArrayList<AdminBiz>();
|
|
adminBizList = new ArrayList<AdminBiz>();
|
|
@@ -143,14 +125,6 @@ public class XxlJobExecutor {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- private void stopInvokerFactory(){
|
|
|
|
- // stop invoker factory
|
|
|
|
- try {
|
|
|
|
- XxlRpcInvokerFactory.getInstance().stop();
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- logger.error(e.getMessage(), e);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
public static List<AdminBiz> getAdminBizList(){
|
|
public static List<AdminBiz> getAdminBizList(){
|
|
return adminBizList;
|
|
return adminBizList;
|
|
}
|
|
}
|
|
@@ -171,7 +145,16 @@ public class XxlJobExecutor {
|
|
serviceRegistryParam.put("address", address);
|
|
serviceRegistryParam.put("address", address);
|
|
|
|
|
|
xxlRpcProviderFactory = new XxlRpcProviderFactory();
|
|
xxlRpcProviderFactory = new XxlRpcProviderFactory();
|
|
- xxlRpcProviderFactory.initConfig(NetEnum.NETTY_HTTP, Serializer.SerializeEnum.HESSIAN.getSerializer(), ip, port, accessToken, ExecutorServiceRegistry.class, serviceRegistryParam);
|
|
|
|
|
|
+
|
|
|
|
+ xxlRpcProviderFactory.setServer(NettyHttpServer.class);
|
|
|
|
+ xxlRpcProviderFactory.setSerializer(HessianSerializer.class);
|
|
|
|
+ xxlRpcProviderFactory.setCorePoolSize(30);
|
|
|
|
+ xxlRpcProviderFactory.setMaxPoolSize(200);
|
|
|
|
+ xxlRpcProviderFactory.setIp(ip);
|
|
|
|
+ xxlRpcProviderFactory.setPort(port);
|
|
|
|
+ xxlRpcProviderFactory.setAccessToken(accessToken);
|
|
|
|
+ xxlRpcProviderFactory.setServiceRegistry(ExecutorServiceRegistry.class);
|
|
|
|
+ xxlRpcProviderFactory.setServiceRegistryParam(serviceRegistryParam);
|
|
|
|
|
|
// add services
|
|
// add services
|
|
xxlRpcProviderFactory.addService(ExecutorBiz.class.getName(), null, new ExecutorBizImpl());
|
|
xxlRpcProviderFactory.addService(ExecutorBiz.class.getName(), null, new ExecutorBizImpl());
|