feat: update task routing and coze handling
This commit is contained in:
@@ -20,6 +20,8 @@ import java.util.regex.Pattern;
|
||||
@RequiredArgsConstructor
|
||||
public class TaskOperationLockConfig implements WebMvcConfigurer {
|
||||
|
||||
private static final String LOCK_ATTRIBUTE = TaskOperationLockConfig.class.getName() + ".LOCK";
|
||||
|
||||
private final TaskDistributedLockService taskDistributedLockService;
|
||||
|
||||
@Override
|
||||
@@ -28,6 +30,19 @@ public class TaskOperationLockConfig implements WebMvcConfigurer {
|
||||
.addPathPatterns("/api/**");
|
||||
}
|
||||
|
||||
public static boolean releaseRequestLock(HttpServletRequest request) {
|
||||
if (request == null) {
|
||||
return false;
|
||||
}
|
||||
Object lockHandle = request.getAttribute(LOCK_ATTRIBUTE);
|
||||
if (lockHandle instanceof TaskDistributedLockService.LockHandle handle) {
|
||||
request.removeAttribute(LOCK_ATTRIBUTE);
|
||||
handle.close();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Slf4j
|
||||
private static final class TaskOperationLockInterceptor implements HandlerInterceptor {
|
||||
|
||||
@@ -36,7 +51,6 @@ public class TaskOperationLockConfig implements WebMvcConfigurer {
|
||||
private static final Set<String> MUTATING_METHODS = Set.of("POST", "PUT", "PATCH", "DELETE");
|
||||
private static final long RESULT_SUBMIT_WAIT_MILLIS = 30 * 1000L;
|
||||
private static final long DELETE_WAIT_MILLIS = 60 * 1000L;
|
||||
private static final String LOCK_ATTRIBUTE = TaskOperationLockInterceptor.class.getName() + ".LOCK";
|
||||
|
||||
private final TaskDistributedLockService taskDistributedLockService;
|
||||
|
||||
@@ -83,10 +97,7 @@ public class TaskOperationLockConfig implements WebMvcConfigurer {
|
||||
HttpServletResponse response,
|
||||
Object handler,
|
||||
Exception ex) {
|
||||
Object lockHandle = request.getAttribute(LOCK_ATTRIBUTE);
|
||||
if (lockHandle instanceof TaskDistributedLockService.LockHandle handle) {
|
||||
handle.close();
|
||||
}
|
||||
releaseRequestLock(request);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user