自动化立体仓库 - WCS系统
*
lsh
4 天以前 388353ed9bad250663e8ad8129463d1ea80d46e6
src/main/java/com/zy/core/cache/TaskProtocolCache.java
@@ -15,7 +15,7 @@
@Slf4j
public class TaskProtocolCache {
    // 本地缓存,键为 taskNo,值为 TaskProtocol
    private final ConcurrentHashMap<Long, TaskProtocol> cache = new ConcurrentHashMap<>();
    private final ConcurrentHashMap<String, TaskProtocol> cache = new ConcurrentHashMap<>();
    // 读写锁,确保线程安全
//    private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
@@ -24,28 +24,16 @@
     * 更新设备状态
     */
    public void updateTaskProtocol(TaskProtocol status) {
        cache.put(status.getTaskNo(), status);
        cache.put(status.getTaskNoDirection(), status);
    }
    /**
     * 删除任务缓存
     */
    public TaskProtocol removeTaskProtocol(String taskNo) {
    public TaskProtocol removeTaskProtocol(String taskNoDirection) {
//        lock.readLock().lock(); // 加读锁
        try {
            return cache.remove(taskNo);
        } finally {
//            lock.readLock().unlock(); // 释放读锁
        }
    }
    /**
     * 获取任务缓存
     */
    public TaskProtocol getTaskProtocol(String taskNo) {
//        lock.readLock().lock(); // 加读锁
        try {
            return cache.get(taskNo);
            return cache.remove(taskNoDirection);
        } finally {
//            lock.readLock().unlock(); // 释放读锁
        }
@@ -54,7 +42,7 @@
    /**
     * 获取所有任务
     */
    public ConcurrentHashMap<Long, TaskProtocol> getAllTaskProtocol() {
    public ConcurrentHashMap<String, TaskProtocol> getAllTaskProtocol() {
//        lock.readLock().lock(); // 加读锁
        try {
            return new ConcurrentHashMap<>(cache); // 返回副本
@@ -74,6 +62,10 @@
        }
        return new ArrayList<>();
    }
    /**
     * 获取所有取任务
     */
    public List<TaskProtocol> getAllTakeTaskProtocol() {
//        lock.readLock().lock(); // 加读锁
        try {
@@ -90,7 +82,7 @@
    }
    /**
     * 获取所有取任务
     * 获取所有放任务
     */
    public List<TaskProtocol> getAllPutTaskProtocol() {
//        lock.readLock().lock(); // 加读锁
@@ -108,7 +100,7 @@
    }
    /**
     * 获取所有取任务
     * 获取所有行走任务
     */
    public List<TaskProtocol> getAllWalkTaskProtocol() {
//        lock.readLock().lock(); // 加读锁