|  | @@ -1,7 +1,6 @@
 | 
	
		
			
				|  |  |  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) {
 |