mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-08-27 06:39:24 +00:00
revert
This commit is contained in:
parent
ae3ed72283
commit
8a375c5da4
@ -10,8 +10,6 @@ import org.aspectj.lang.ProceedingJoinPoint;
|
|||||||
import org.aspectj.lang.annotation.*;
|
import org.aspectj.lang.annotation.*;
|
||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
@ -35,6 +33,7 @@ public class AutoJobAspect {
|
|||||||
private static final Duration RETRY_BASE_DELAY = Duration.ofMillis(100);
|
private static final Duration RETRY_BASE_DELAY = Duration.ofMillis(100);
|
||||||
|
|
||||||
private final JobExecutorService jobExecutorService;
|
private final JobExecutorService jobExecutorService;
|
||||||
|
private final HttpServletRequest request;
|
||||||
private final FileOrUploadService fileOrUploadService;
|
private final FileOrUploadService fileOrUploadService;
|
||||||
private final FileStorage fileStorage;
|
private final FileStorage fileStorage;
|
||||||
|
|
||||||
@ -43,17 +42,8 @@ public class AutoJobAspect {
|
|||||||
ProceedingJoinPoint joinPoint, AutoJobPostMapping autoJobPostMapping) {
|
ProceedingJoinPoint joinPoint, AutoJobPostMapping autoJobPostMapping) {
|
||||||
// This aspect will run before any audit aspects due to @Order(0)
|
// This aspect will run before any audit aspects due to @Order(0)
|
||||||
// Extract parameters from the request and annotation
|
// Extract parameters from the request and annotation
|
||||||
boolean async = false;
|
boolean async = Boolean.parseBoolean(request.getParameter("async"));
|
||||||
try {
|
log.debug("AutoJobAspect: Processing {} {} with async={}", request.getMethod(), request.getRequestURI(), async);
|
||||||
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
||||||
if (attrs != null) {
|
|
||||||
HttpServletRequest request = attrs.getRequest();
|
|
||||||
async = Boolean.parseBoolean(request.getParameter("async"));
|
|
||||||
log.debug("AutoJobAspect: Processing {} {} with async={}", request.getMethod(), request.getRequestURI(), async);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.debug("Could not retrieve async parameter from request: {}", e.getMessage());
|
|
||||||
}
|
|
||||||
long timeout = autoJobPostMapping.timeout();
|
long timeout = autoJobPostMapping.timeout();
|
||||||
int retryCount = autoJobPostMapping.retryCount();
|
int retryCount = autoJobPostMapping.retryCount();
|
||||||
boolean trackProgress = autoJobPostMapping.trackProgress();
|
boolean trackProgress = autoJobPostMapping.trackProgress();
|
||||||
@ -287,14 +277,10 @@ public class AutoJobAspect {
|
|||||||
|
|
||||||
private String getJobIdFromContext() {
|
private String getJobIdFromContext() {
|
||||||
try {
|
try {
|
||||||
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
return (String) request.getAttribute("jobId");
|
||||||
if (attrs != null) {
|
|
||||||
HttpServletRequest request = attrs.getRequest();
|
|
||||||
return (String) request.getAttribute("jobId");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.debug("Could not retrieve job ID from context: {}", e.getMessage());
|
log.debug("Could not retrieve job ID from context: {}", e.getMessage());
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,6 @@ import org.springframework.http.HttpHeaders;
|
|||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
@ -32,6 +30,7 @@ public class JobExecutorService {
|
|||||||
|
|
||||||
private final TaskManager taskManager;
|
private final TaskManager taskManager;
|
||||||
private final FileStorage fileStorage;
|
private final FileStorage fileStorage;
|
||||||
|
private final HttpServletRequest request;
|
||||||
private final ResourceMonitor resourceMonitor;
|
private final ResourceMonitor resourceMonitor;
|
||||||
private final JobQueue jobQueue;
|
private final JobQueue jobQueue;
|
||||||
private final ExecutorService executor = ExecutorFactory.newVirtualOrCachedThreadExecutor();
|
private final ExecutorService executor = ExecutorFactory.newVirtualOrCachedThreadExecutor();
|
||||||
@ -40,12 +39,14 @@ public class JobExecutorService {
|
|||||||
public JobExecutorService(
|
public JobExecutorService(
|
||||||
TaskManager taskManager,
|
TaskManager taskManager,
|
||||||
FileStorage fileStorage,
|
FileStorage fileStorage,
|
||||||
|
HttpServletRequest request,
|
||||||
ResourceMonitor resourceMonitor,
|
ResourceMonitor resourceMonitor,
|
||||||
JobQueue jobQueue,
|
JobQueue jobQueue,
|
||||||
@Value("${spring.mvc.async.request-timeout:1200000}") long asyncRequestTimeoutMs,
|
@Value("${spring.mvc.async.request-timeout:1200000}") long asyncRequestTimeoutMs,
|
||||||
@Value("${server.servlet.session.timeout:30m}") String sessionTimeout) {
|
@Value("${server.servlet.session.timeout:30m}") String sessionTimeout) {
|
||||||
this.taskManager = taskManager;
|
this.taskManager = taskManager;
|
||||||
this.fileStorage = fileStorage;
|
this.fileStorage = fileStorage;
|
||||||
|
this.request = request;
|
||||||
this.resourceMonitor = resourceMonitor;
|
this.resourceMonitor = resourceMonitor;
|
||||||
this.jobQueue = jobQueue;
|
this.jobQueue = jobQueue;
|
||||||
|
|
||||||
@ -99,30 +100,24 @@ public class JobExecutorService {
|
|||||||
String jobId = UUID.randomUUID().toString();
|
String jobId = UUID.randomUUID().toString();
|
||||||
|
|
||||||
// Store the job ID in the request for potential use by other components
|
// Store the job ID in the request for potential use by other components
|
||||||
try {
|
if (request != null) {
|
||||||
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
request.setAttribute("jobId", jobId);
|
||||||
if (attrs != null) {
|
|
||||||
HttpServletRequest request = attrs.getRequest();
|
|
||||||
request.setAttribute("jobId", jobId);
|
|
||||||
|
|
||||||
// Also track this job ID in the user's session for authorization purposes
|
// Also track this job ID in the user's session for authorization purposes
|
||||||
// This ensures users can only cancel their own jobs
|
// This ensures users can only cancel their own jobs
|
||||||
if (request.getSession() != null) {
|
if (request.getSession() != null) {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
java.util.Set<String> userJobIds =
|
java.util.Set<String> userJobIds =
|
||||||
(java.util.Set<String>) request.getSession().getAttribute("userJobIds");
|
(java.util.Set<String>) request.getSession().getAttribute("userJobIds");
|
||||||
|
|
||||||
if (userJobIds == null) {
|
if (userJobIds == null) {
|
||||||
userJobIds = new java.util.concurrent.ConcurrentSkipListSet<>();
|
userJobIds = new java.util.concurrent.ConcurrentSkipListSet<>();
|
||||||
request.getSession().setAttribute("userJobIds", userJobIds);
|
request.getSession().setAttribute("userJobIds", userJobIds);
|
||||||
}
|
|
||||||
|
|
||||||
userJobIds.add(jobId);
|
|
||||||
log.debug("Added job ID {} to user session", jobId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userJobIds.add(jobId);
|
||||||
|
log.debug("Added job ID {} to user session", jobId);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
log.debug("Could not store job ID in request context: {}", e.getMessage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine which timeout to use
|
// Determine which timeout to use
|
||||||
|
Loading…
x
Reference in New Issue
Block a user