#
luxiaotao1123
2024-12-23 b50c51d556cb12061da963e17815a8ec416b6ad2
#
7个文件已修改
2个文件已添加
1个文件已删除
204 ■■■■■ 已修改文件
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-eureka/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-fake/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-framework/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-framework/src/main/java/com/zy/acs/framework/utils/SignUtils.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/pom.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/DemoController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNode.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodeFactory.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/NavigateNodePool.java 69 ●●●●● 补丁 | 查看 | 原始文档 | 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);
        }
    }
}