pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-eureka/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-fake/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-framework/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-manager/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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> 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> 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> 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> zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java
File was deleted 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> 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); } } 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; } } zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java
New file @@ -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(); } } zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java
New file @@ -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); } } }