运维页面
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package com.yunhai.bschclassmanage.utils;
|
||||
|
||||
/**
|
||||
* 同步日志「重试」标记上下文。
|
||||
* retry() 通过 Spring 代理重放原始调用时会再次触发 SyncLogAspect 生成一条新的同步日志,
|
||||
* 用 ThreadLocal 把「本次调用是重试」这一信号透传给切面,切面据此在同步类型名上追加"(重试)"。
|
||||
*/
|
||||
public final class SyncLogRetryContext {
|
||||
|
||||
private static final ThreadLocal<Boolean> RETRY = new ThreadLocal<>();
|
||||
|
||||
private SyncLogRetryContext() {
|
||||
}
|
||||
|
||||
/** 标记当前线程的下一次同步调用为重试 */
|
||||
public static void mark() {
|
||||
RETRY.set(Boolean.TRUE);
|
||||
}
|
||||
|
||||
/** 当前线程的同步调用是否为重试 */
|
||||
public static boolean isRetry() {
|
||||
return Boolean.TRUE.equals(RETRY.get());
|
||||
}
|
||||
|
||||
/** 清除标记(务必在 finally 中调用,避免线程池复用导致标记泄漏) */
|
||||
public static void clear() {
|
||||
RETRY.remove();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user