提交 650682d2 编写于 作者: X xueli.xue

底层优化

上级 9ab7d469
......@@ -8,6 +8,7 @@ import com.xxl.job.core.rpc.netcom.NetComServerFactory;
import com.xxl.job.core.thread.ExecutorRegistryThread;
import com.xxl.job.core.thread.JobThread;
import com.xxl.job.core.thread.TriggerCallbackThread;
import com.xxl.job.core.util.AdminApiUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
......@@ -29,7 +30,7 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
private String ip;
private int port = 9999;
private String appName;
public static String adminAddresses;
private String adminAddresses;
public static String logPath;
public void setIp(String ip) {
......@@ -51,6 +52,9 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
// ---------------------------------- job server ------------------------------------
private NetComServerFactory serverFactory = new NetComServerFactory();
public void start() throws Exception {
// admin api util init
AdminApiUtil.init(adminAddresses);
// executor start
NetComServerFactory.putService(ExecutorBiz.class, new ExecutorBizImpl());
serverFactory.start(port, ip, appName);
......
......@@ -24,7 +24,9 @@ public class ExecutorRegistryThread extends Thread {
private Thread registryThread;
private boolean toStop = false;
public void start(final int port, final String ip, final String appName){
if (appName==null || appName.trim().length()==0) {
// valid
if (AdminApiUtil.allowCallApi && (appName!=null && appName.trim().length()>0) ) {
logger.warn(">>>>>>>>>>>> xxl-job, executor registry config fail");
return;
}
......
package com.xxl.job.core.util;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.executor.XxlJobExecutor;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
......@@ -15,7 +14,9 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* @author xuxueli 2017-05-10 21:28:15
......@@ -26,19 +27,31 @@ public class AdminApiUtil {
public static final String CALLBACK = "/api/callback";
public static final String REGISTRY = "/api/registry";
public static ReturnT<String> callApiFailover(String subUrl, Object requestObj) throws Exception {
private static List<String> adminAddressList = null;
public static boolean allowCallApi = true;
public static void init(String adminAddresses){
// admin assress list
List<String> adminAddressList = new ArrayList<String>();
if (XxlJobExecutor.adminAddresses != null) {
for (String adminAddressItem: XxlJobExecutor.adminAddresses.split(",")) {
if (adminAddressItem.trim().length()>0 && !adminAddressList.contains(adminAddressItem)) {
adminAddressList.add(adminAddressItem);
if (adminAddresses != null) {
Set<String> adminAddressSet = new HashSet<String>();
for (String adminAddressItem: adminAddresses.split(",")) {
if (adminAddressItem.trim().length()>0 && !adminAddressSet.contains(adminAddressItem)) {
adminAddressSet.add(adminAddressItem);
}
}
if (adminAddressSet==null || adminAddressSet.size()==0) {
adminAddressList = new ArrayList<String>(adminAddressSet);
}
}
if (adminAddressList==null || adminAddressList.size()==0) {
return ReturnT.FAIL;
// parse
allowCallApi = (adminAddressList!=null && adminAddressList.size()>0);
}
public static ReturnT<String> callApiFailover(String subUrl, Object requestObj) throws Exception {
if (!allowCallApi) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "allowCallback fail.");
}
for (String adminAddress: adminAddressList) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册