From 5372708b190a7c9fdceb1da20c8cbadc7f9664e4 Mon Sep 17 00:00:00 2001 From: "junj2.liang" Date: Thu, 8 Sep 2022 22:14:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sge/database/SydApiLongLinkWrap.java | 64 ++++++++++++++++--- src/test/java/sample/Sample.java | 4 +- 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java b/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java index 064a9ed..0a5e864 100644 --- a/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java +++ b/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java @@ -1,7 +1,6 @@ package com.sunyard.sge.database; import com.sunyard.SydApiException; -import com.sunyard.sge.log.LogFactory; import java.util.ArrayList; import java.util.Arrays; @@ -17,9 +16,6 @@ import static com.sunyard.sge.database.SydApiConfig.BATCH_SIZE; * 长连接的真正执行过程转发到长连接线程池中执行。 */ public class SydApiLongLinkWrap implements SydApi { - static { - LogFactory.createLogger("./logs", 0); - } private SydApiBuilder builder; @@ -84,28 +80,78 @@ public class SydApiLongLinkWrap implements SydApi { @Override public byte[] SYD_SM4_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, int iFlag) { - return new byte[0]; + FutureTask task = builder.getLongLinkWorks().fTask(new Callable() { + @Override + public byte[] call() throws Exception { + return builder.get().SYD_SM4_LongData(iKeyIndex, pcData, iPkgNum, iFlag); + } + }); + try { + return task.get(); + } catch (Exception e) { + throw new SydApiException("并行任务执行失败", 0xC101, e); + } } @Override public LongDataReturn SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData) { - return null; + FutureTask> task = builder.getLongLinkWorks().fTask(new Callable>() { + @Override + public LongDataReturn call() throws Exception { + return builder.get().SYD_SM4Mac_LongData(iKeyIndex, pcData, iPkgNum, pcProcData); + } + }); + try { + return task.get(); + } catch (Exception e) { + throw new SydApiException("并行任务执行失败", 0xC101, e); + } } @Override public LongDataReturn SYD_SM4Mac_LongData(int iKeyIndex, byte[] pcData, int iPkgNum, String pcProcData, String pcMac) { - return null; + FutureTask> task = builder.getLongLinkWorks().fTask(new Callable>() { + @Override + public LongDataReturn call() throws Exception { + return builder.get().SYD_SM4Mac_LongData(iKeyIndex, pcData, iPkgNum, pcProcData, pcMac); + } + }); + try { + return task.get(); + } catch (Exception e) { + throw new SydApiException("并行任务执行失败", 0xC101, e); + } } @Override public String SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData) { - return null; + FutureTask task = builder.getLongLinkWorks().fTask(new Callable() { + @Override + public String call() throws Exception { + return builder.get().SYD_SM4Mac_ShortData(iKeyIndex, pcData); + } + }); + try { + return task.get(); + } catch (Exception e) { + throw new SydApiException("并行任务执行失败", 0xC101, e); + } } @Override public boolean SYD_SM4Mac_ShortData(int iKeyIndex, byte[] pcData, String pcMac) { - return false; + FutureTask task = builder.getLongLinkWorks().fTask(new Callable() { + @Override + public Boolean call() throws Exception { + return builder.get().SYD_SM4Mac_ShortData(iKeyIndex, pcData, pcMac); + } + }); + try { + return task.get(); + } catch (Exception e) { + throw new SydApiException("并行任务执行失败", 0xC101, e); + } } @Override diff --git a/src/test/java/sample/Sample.java b/src/test/java/sample/Sample.java index d1081e9..8b48a25 100644 --- a/src/test/java/sample/Sample.java +++ b/src/test/java/sample/Sample.java @@ -18,8 +18,8 @@ public class Sample // 通常单例就够了 SydApiBuilder builder = new SydApiBuilder( - new String[]{ "192.168.1.129" }, - new int[]{ 8889 }, + new String[]{ "192.168.1.129","172.16.18.59" }, + new int[]{ 8889,8889 }, 10, 15 );