package com.hqyg; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import javax.annotation.Resource; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.junit.Before; import org.junit.Test; import com.hqyg.disjob.common.exception.TransportException; import com.hqyg.disjob.common.util.LocalHost; import com.hqyg.disjob.common.util.UUIDHexGenerator; import com.hqyg.disjob.register.center.pool.ConsoleCuratorClient; import com.hqyg.disjob.register.center.pool.ThreadLocalClient; import com.hqyg.disjob.register.job.EjobServerServiceImpl; import com.hqyg.disjob.rpc.client.HURL; import com.hqyg.disjob.rpc.client.proxy.RpcClient; import com.hqyg.disjob.rpc.codec.Header; import com.hqyg.disjob.rpc.codec.Response; import com.hqyg.disjob.rpc.codec.RpcRequest; import com.hqyg.disjob.rpc.codec.RpcRequestData; import com.hqyg.disjob.rpc.codec.RpcResponse; public class commonPool extends BaseJunitTest{ @Resource private ThreadLocalClient threadLocalClient; @Resource public EjobServerServiceImpl initServerExecuteJobService; CuratorFramework client = null; @Before public void init(){ // zkUrl = new HURL("zookeeper", "10.40.6.100", 2181, "service4"); // clientUrl = new HURL(EJobConstants.PROTOCOL_MOTAN, "10.40.6.100", 2181, "2"); LocalHost localHost = new LocalHost(); //clientUrl = new HURL("oms",EJobConstants.PROTOCOL_MOTAN, localHost.getIp(), 1, "test"); client = CuratorFrameworkFactory.builder() .connectString("10.40.6.100:2181,10.40.6.101:2181,10.40.6.102:2181") .sessionTimeoutMs(5000) .retryPolicy(new ExponentialBackoffRetry(1000, 3)) .build(); client.start(); threadLocalClient.setCuratorClient(); ConsoleCuratorClient curatorClient = threadLocalClient.getCuratorClient(); if (null == curatorClient || !curatorClient.isConnected()) { System.out.println("get ZK client failed!"); return ; } } @Test public void testBorrow() throws TransportException{ HURL hurl = new HURL("oms4", "ejob", "10.40.6.100", 9501, "ctestjob1"); final RpcClient client = com.hqyg.disjob.rpc.client.proxy.RpcClientCache.get(hurl); String parameters ="123"; //根据JobDataMap提供的数据和HURL对象组装调用数据 final RpcRequest request = new RpcRequest(); Header header = new Header(); header.setType((byte)1); header.setVersion(1); RpcRequestData data = new RpcRequestData(); data.setRequestId(UUIDHexGenerator.generate()); data.setPath(hurl.getPhpFilePath()); data.setClassName(hurl.getClassName()); data.setMethodName(hurl.getMethodName()); data.setParameters(parameters); request.setHeader(header); request.setData(data); ExecutorService executorService = Executors.newFixedThreadPool(10); for(int i =0;i<1;i++){ /*try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ executorService.execute(new Runnable() { public void run() { Response response = new RpcResponse(); try { response = client.request(request); } catch (TransportException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(response); } }); } try { Thread.sleep(50505050); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } executorService.shutdown(); } }