运维页面
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