From b50c51d556cb12061da963e17815a8ec416b6ad2 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 23 十二月 2024 08:14:00 +0800 Subject: [PATCH] # --- /dev/null | 53 ------------- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java | 13 +++ zy-acs-framework/pom.xml | 6 - zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java | 69 +++++++++++++++++ zy-acs-fake/pom.xml | 1 zy-acs-eureka/pom.xml | 1 zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java | 21 +++++ zy-acs-manager/pom.xml | 14 ++- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java | 25 ++++++ pom.xml | 1 10 files changed, 136 insertions(+), 68 deletions(-) diff --git a/pom.xml b/pom.xml index 2dd5177..e7d2831 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,6 @@ </modules> <properties> - <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-cloud.version>2020.0.5</spring-cloud.version> diff --git a/zy-acs-eureka/pom.xml b/zy-acs-eureka/pom.xml index eba4079..f72cd15 100644 --- a/zy-acs-eureka/pom.xml +++ b/zy-acs-eureka/pom.xml @@ -18,7 +18,6 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <java.version>1.8</java.version> </properties> <dependencies> diff --git a/zy-acs-fake/pom.xml b/zy-acs-fake/pom.xml index be4e209..6826c81 100644 --- a/zy-acs-fake/pom.xml +++ b/zy-acs-fake/pom.xml @@ -18,7 +18,6 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <java.version>1.8</java.version> <mysql-driver.version>5.1.47</mysql-driver.version> </properties> diff --git a/zy-acs-framework/pom.xml b/zy-acs-framework/pom.xml index ddd1130..7c44e4a 100644 --- a/zy-acs-framework/pom.xml +++ b/zy-acs-framework/pom.xml @@ -15,7 +15,6 @@ </parent> <properties> - <jdk.version>1.8</jdk.version> <spring-framework.version>5.3.9</spring-framework.version> </properties> @@ -29,11 +28,6 @@ <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> - </dependency> - <dependency> - <groupId>com.microsoft.sqlserver</groupId> - <artifactId>mssql-jdbc</artifactId> - <version>8.2.2.jre8</version> </dependency> </dependencies> diff --git a/zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java b/zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java deleted file mode 100644 index 9b286db..0000000 --- a/zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.zy.acs.framework.utils; - -import com.zy.acs.framework.common.Cools; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -import static javax.xml.bind.JAXBIntrospector.getValue; - -/** - * Created by vincent on 2020-01-06 - */ -public class SignUtils { - - /** - * 鐢熸垚绛惧悕 - * 锛堣鍒欏涓嬶細 - * 绗竴姝ワ細 - * 璁炬墍鏈夊彂閫佹垨鑰呮帴鏀跺埌鐨勬暟鎹负闆嗗悎M锛� - * 灏嗛泦鍚圡鍐呴潪绌哄弬鏁板�肩殑鍙傛暟鎸夌収鍙傛暟鍚岮SCII鐮佷粠灏忓埌澶ф帓搴忥紙瀛楀吀搴忥級锛� - * 浣跨敤URL閿�煎鐨勬牸寮忥紙鍗砶ey1=value1&key2=value2鈥︼級鎷兼帴鎴愬瓧绗︿覆stringA - * - * 绗簩姝ワ細 - * 鍦╯tringA鏈�鍚庢嫾鎺ヤ笂key寰楀埌stringSignTemp瀛楃涓诧紝 - * 骞跺stringSignTemp杩涜MD5杩愮畻锛屽啀灏嗗緱鍒扮殑瀛楃涓叉墍鏈夊瓧绗﹁浆鎹负澶у啓锛� - * 寰楀埌sign鍊約ignValue - * 锛� - * @param map 鍙傛暟闆嗗悎 - * @param secret 瀵嗛挜 - * @return the sign 绛惧悕 - */ - public static String sign(Map<String, Object> map, String secret) { - List<String> list = new ArrayList<>(); - for (String key : map.keySet()) { - if (!key.equals("sign") && map.get(key) != null) { - list.add(key + "=" + getValue(key) + "&"); - } - } - int size = list.size(); - String[] arrayToSort = list.toArray(new String[size]); - Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < size; i++) { - sb.append(arrayToSort[i]); - } - String stringA = sb.toString(); - stringA += "key=" + secret; - return Cools.md5(stringA).toUpperCase(); - } - -} diff --git a/zy-acs-manager/pom.xml b/zy-acs-manager/pom.xml index 8fb1e78..1dc9b9e 100644 --- a/zy-acs-manager/pom.xml +++ b/zy-acs-manager/pom.xml @@ -18,7 +18,6 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <java.version>1.8</java.version> <mysql-driver.version>5.1.47</mysql-driver.version> </properties> @@ -148,11 +147,14 @@ </dependency> <!-- nd4j --> -<!-- <dependency>--> -<!-- <groupId>org.nd4j</groupId>--> -<!-- <artifactId>nd4j-native-platform</artifactId>--> -<!-- <version>1.0.0-M2.1</version>--> -<!-- </dependency>--> + <dependency> + <groupId>org.nd4j</groupId> + <artifactId>nd4j-native-platform</artifactId> + <!-- java 8 --> +<!-- <version>1.0.0-M1.1</version>--> + <!-- java 11 --> + <version>1.0.0-M2.1</version> + </dependency> </dependencies> diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java index 3100ec2..947a25a 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java @@ -19,6 +19,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -141,4 +142,24 @@ } return R.ok().add(result); } + + + @Autowired + private MapService mapService; + @Autowired + private SegmentService segmentService; + + @GetMapping("/astarDemo") // astar spend time: 3866, count:3855 + public R astarDemo() { + long startTime = System.currentTimeMillis(); + List<String> path = mapService.checkoutPath("18" + , codeService.selectByData("00001318") + , codeService.selectByData("00003447") + , true + , new ArrayList<>() + , segmentService.getById(1390)); + System.out.println("demo spend time: " + (System.currentTimeMillis() - startTime)); + return R.ok().add(path); + } + } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java index a27e0d9..0210277 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java @@ -89,4 +89,17 @@ return Objects.hash(x, y); } + public void reset() { + this.F = 0; + this.G = 0; + this.H = 0; + this.parent = null; + this.turningPoint = null; + this.direction = null; + this.lastDistance = null; + this.moveDistance = null; + this.weight = null; + this.codeData = null; + } + } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java new file mode 100644 index 0000000..9834a0a --- /dev/null +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java @@ -0,0 +1,25 @@ +package com.zy.acs.manager.core.service.astart; + +import org.apache.commons.pool2.BasePooledObjectFactory; +import org.apache.commons.pool2.PooledObject; +import org.apache.commons.pool2.impl.DefaultPooledObject; + +public class NavigateNodeFactory extends BasePooledObjectFactory<NavigateNode> { + + @Override + public NavigateNode create() throws Exception { + // 鍒涘缓涓�涓粯璁ょ殑 NavigateNode 瀹炰緥锛屽潗鏍囧皢鍦ㄤ娇鐢ㄦ椂璁剧疆 + return new NavigateNode(0, 0); + } + + @Override + public PooledObject<NavigateNode> wrap(NavigateNode node) { + return new DefaultPooledObject<>(node); + } + + @Override + public void passivateObject(PooledObject<NavigateNode> p) throws Exception { + // 鍦ㄥ璞¤褰掕繕鍒版睜涓椂閲嶇疆鍏剁姸鎬� + p.getObject().reset(); + } +} \ No newline at end of file diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java new file mode 100644 index 0000000..7a51eb7 --- /dev/null +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java @@ -0,0 +1,69 @@ +package com.zy.acs.manager.core.service.astart; + +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.pool2.ObjectPool; +import org.apache.commons.pool2.impl.GenericObjectPool; +import org.apache.commons.pool2.impl.GenericObjectPoolConfig; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Slf4j +@Component +public class NavigateNodePool { + + private ObjectPool<NavigateNode> pool; + + @PostConstruct + public void init() { + GenericObjectPoolConfig<NavigateNode> config = new GenericObjectPoolConfig<>(); + config.setMaxTotal(30000); // 閰嶇疆姹犵殑鏈�澶у璞℃暟閲� + config.setMinIdle(30000); // 鏈�灏忕┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁� + config.setMaxIdle(30000); // 鏈�澶х┖闂插璞℃暟锛屽彲浠ユ牴鎹渶姹傝皟鏁� + config.setBlockWhenExhausted(true); // 姹犺�楀敖鏃堕樆濉� + config.setMaxWaitMillis(1000); // 姹犺�楀敖鏃舵渶澶х瓑寰呮椂闂� + pool = new GenericObjectPool<>(new NavigateNodeFactory(), config); + } + + + // 鑾峰彇瀵硅薄 + public NavigateNode borrowObject() { + try { +// System.out.println("numActive:" + pool.getNumActive()); +// System.out.println("numIdle:" + pool.getNumIdle()); + return pool.borrowObject(); + } catch (Exception e) { + log.error("borrowObject", e); + throw new RuntimeException("Failed to borrow NavigateNode from pool", e); + } + } + + // 褰掕繕瀵硅薄 + public void returnObject(NavigateNode node) { + if (node != null) { + try { + pool.returnObject(node); + System.out.println("numIdle:" + pool.getNumIdle()); + } catch (Exception e) { + log.error("returnObject", e); + // 濡傛灉褰掕繕澶辫触锛屽彲浠ラ�夋嫨閿�姣佸璞� + try { + pool.invalidateObject(node); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + } + } + + + // 閿�姣佸璞℃睜 + public void close() { + try { + pool.close(); + } catch (Exception e) { + log.error("close", e); + } + } +} \ No newline at end of file -- Gitblit v1.9.1