zhou zhou
4 天以前 37844746c8344b5a0f6b5b0b0add29dd06c2d2cb
#lua锁示例
2个文件已修改
21 ■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/common/redis/RedisKeys.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/common/redis/RedisKeys.java
@@ -5,19 +5,13 @@
    private RedisKeys() {
    }
    public static String locationOccupy(Long locationId) {
        return "wms:location:occupy:" + locationId;
    public static String locationOccupy(String key) {
        return "wms:location:occupy:" + key;
    }
    public static String locationTaskOccupy(Long locationId) {
        return "wms:task:occupy:location:" + locationId;
    public static String stationOccupy(String key) {
        return "wms:station:occupy:" + key;
    }
    public static String stockAvailable(Long inventoryId) {
        return "wms:stock:available:" + inventoryId;
    }
    public static String stockReserve(String orderNo) {
        return "wms:stock:reserve:" + orderNo;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -5,6 +5,7 @@
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.utils.LocUtils;
import com.vincent.rsf.server.common.redis.RedisKeys;
import com.vincent.rsf.server.manager.controller.dto.ExistDto;
import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
import com.vincent.rsf.server.manager.controller.params.WaveToLocParams;
@@ -85,16 +86,12 @@
            if (Objects.isNull(loc) || Cools.isEmpty(loc.getCode())) {
                continue;
            }
            boolean claimed = wmsRedisLuaService.claimLocation(buildTargetLocLockKey(loc.getCode()), loc.getCode(), TARGET_LOC_LOCK_TTL);
            boolean claimed = wmsRedisLuaService.claimLocation(RedisKeys.locationOccupy(loc.getCode()), loc.getCode(), TARGET_LOC_LOCK_TTL);
            if (claimed) {
                return loc.getCode();
            }
        }
        return null;
    }
    private static String buildTargetLocLockKey(String locCode) {
        return TARGET_LOC_LOCK_KEY_PREFIX + locCode;
    }
    /**