|
@@ -4,6 +4,7 @@ import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.Executor;
|
|
import java.util.concurrent.Executor;
|
|
import java.util.concurrent.ForkJoinPool;
|
|
import java.util.concurrent.ForkJoinPool;
|
|
import java.util.function.Supplier;
|
|
import java.util.function.Supplier;
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
import com.chelvc.framework.common.util.ThreadUtils;
|
|
import com.chelvc.framework.common.util.ThreadUtils;
|
|
import lombok.NonNull;
|
|
import lombok.NonNull;
|
|
@@ -98,12 +99,13 @@ public final class ThreadContextHolder {
|
|
*/
|
|
*/
|
|
public static CompletableFuture<Void> run(@NonNull Executor executor, @NonNull Runnable runnable) {
|
|
public static CompletableFuture<Void> run(@NonNull Executor executor, @NonNull Runnable runnable) {
|
|
Session session = SessionContextHolder.getSession(false);
|
|
Session session = SessionContextHolder.getSession(false);
|
|
|
|
+ HttpServletRequest request = SessionContextHolder.getRequest();
|
|
return CompletableFuture.runAsync(() -> {
|
|
return CompletableFuture.runAsync(() -> {
|
|
SessionContextHolder.setSession(session);
|
|
SessionContextHolder.setSession(session);
|
|
try {
|
|
try {
|
|
runnable.run();
|
|
runnable.run();
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- log.error(e.getMessage(), e);
|
|
|
|
|
|
+ LoggingContextHolder.error(log, request, e);
|
|
} finally {
|
|
} finally {
|
|
SessionContextHolder.removeSessionContext();
|
|
SessionContextHolder.removeSessionContext();
|
|
}
|
|
}
|
|
@@ -131,12 +133,13 @@ public final class ThreadContextHolder {
|
|
*/
|
|
*/
|
|
public static <T> CompletableFuture<T> supply(@NonNull Executor executor, @NonNull Supplier<T> supplier) {
|
|
public static <T> CompletableFuture<T> supply(@NonNull Executor executor, @NonNull Supplier<T> supplier) {
|
|
Session session = SessionContextHolder.getSession(false);
|
|
Session session = SessionContextHolder.getSession(false);
|
|
|
|
+ HttpServletRequest request = SessionContextHolder.getRequest();
|
|
return CompletableFuture.supplyAsync(() -> {
|
|
return CompletableFuture.supplyAsync(() -> {
|
|
SessionContextHolder.setSession(session);
|
|
SessionContextHolder.setSession(session);
|
|
try {
|
|
try {
|
|
return supplier.get();
|
|
return supplier.get();
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- log.error(e.getMessage(), e);
|
|
|
|
|
|
+ LoggingContextHolder.error(log, request, e);
|
|
} finally {
|
|
} finally {
|
|
SessionContextHolder.removeSessionContext();
|
|
SessionContextHolder.removeSessionContext();
|
|
}
|
|
}
|