fix(ops): 迁移updateStatus修复到Enhanced实现
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled

REMOVED 状态改为同步更新 Redis,避免自动派单查询到已完成任务

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-01-31 19:05:26 +08:00
parent 009fab543f
commit b73ef4f39f

View File

@@ -179,17 +179,30 @@ public class OrderQueueServiceEnhanced implements OrderQueueService {
int updated = orderQueueMapper.updateById(queueDO); int updated = orderQueueMapper.updateById(queueDO);
// 2. 异步更新 Redis // 2. 更新 Redis
if (updated > 0) { if (updated > 0) {
OrderQueueDTO dto = convertToDTO(queueDO); OrderQueueDTO dto = convertToDTO(queueDO);
CompletableFuture.runAsync(() -> {
// REMOVED 状态需要同步更新,确保任务完成后立即从 Redis 队列移除
// 避免自动派单下一个时查询到已完成的任务
if (OrderQueueStatusEnum.REMOVED == newStatus) {
try { try {
redisQueueService.updateStatus(queueId, newStatus.getStatus()); redisQueueService.updateStatus(queueId, newStatus.getStatus());
log.debug("Redis 更新状态成功: queueId={}, status={}", queueId, newStatus.getStatus()); log.debug("Redis 同步更新状态成功: queueId={}, status={}", queueId, newStatus.getStatus());
} catch (Exception e) { } catch (Exception e) {
log.error("Redis 更新状态失败: queueId={}", queueId, e); log.error("Redis 同步更新状态失败: queueId={}", queueId, e);
} }
}); } else {
// 其他状态异步更新
CompletableFuture.runAsync(() -> {
try {
redisQueueService.updateStatus(queueId, newStatus.getStatus());
log.debug("Redis 异步更新状态成功: queueId={}, status={}", queueId, newStatus.getStatus());
} catch (Exception e) {
log.error("Redis 异步更新状态失败: queueId={}", queueId, e);
}
});
}
} }
log.info("队列状态已更新: queueId={}, opsOrderId={}, oldStatus={}, newStatus={}", log.info("队列状态已更新: queueId={}, opsOrderId={}, oldStatus={}, newStatus={}",