后端架构更新
This commit is contained in:
@@ -13,6 +13,9 @@ public class GlobalExceptionHandler {
|
||||
|
||||
@ExceptionHandler(BusinessException.class)
|
||||
public ApiResponse<Void> handleBusinessException(BusinessException ex) {
|
||||
if (Integer.valueOf(40901).equals(ex.getCode())) {
|
||||
return ApiResponse.success("任务已结束,忽略重复提交", null);
|
||||
}
|
||||
return ex.getCode() == null
|
||||
? ApiResponse.fail(ex.getMessage())
|
||||
: ApiResponse.fail(ex.getCode(), ex.getMessage());
|
||||
|
||||
@@ -36,7 +36,13 @@ public class DistributedJobLockService {
|
||||
Duration actualTtl = (ttl == null || ttl.isNegative() || ttl.isZero()) ? Duration.ofMinutes(10) : ttl;
|
||||
String key = buildLockKey(jobName);
|
||||
String token = ownerPrefix + ":" + UUID.randomUUID();
|
||||
Boolean locked = stringRedisTemplate.opsForValue().setIfAbsent(key, token, actualTtl);
|
||||
Boolean locked;
|
||||
try {
|
||||
locked = stringRedisTemplate.opsForValue().setIfAbsent(key, token, actualTtl);
|
||||
} catch (Exception ex) {
|
||||
log.warn("[job-lock] acquire skipped jobName={} key={} msg={}", jobName, key, ex.getMessage());
|
||||
return null;
|
||||
}
|
||||
if (!Boolean.TRUE.equals(locked)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user