feat: 2.0.0
1. 优化IdempotentIdContext注释 2. 手动生成幂等号改为IdempotentIdContext传参
This commit is contained in:
parent
d1fa72cfe9
commit
808bcfe0be
@ -27,9 +27,9 @@ public interface IdempotentIdGenerate {
|
|||||||
* 3: 执行的方法名称: methodName(String)
|
* 3: 执行的方法名称: methodName(String)
|
||||||
* scene, targetClassName, args, executorMethod.getName()
|
* scene, targetClassName, args, executorMethod.getName()
|
||||||
*
|
*
|
||||||
* @param idempotentIdContext
|
* @param context {@link IdempotentIdContext} 幂等id生成器上下文
|
||||||
* @return idempotentId
|
* @return idempotentId
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
String idGenerate(IdempotentIdContext idempotentIdContext) throws Exception;
|
String idGenerate(IdempotentIdContext context) throws Exception;
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import com.aizuda.easy.retry.common.core.context.SpringContext;
|
|||||||
import com.aizuda.easy.retry.common.core.enums.RetryResultStatusEnum;
|
import com.aizuda.easy.retry.common.core.enums.RetryResultStatusEnum;
|
||||||
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
|
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
|
||||||
import com.aizuda.easy.retry.common.core.log.LogUtils;
|
import com.aizuda.easy.retry.common.core.log.LogUtils;
|
||||||
|
import com.aizuda.easy.retry.common.core.model.IdempotentIdContext;
|
||||||
import com.aizuda.easy.retry.common.core.model.Result;
|
import com.aizuda.easy.retry.common.core.model.Result;
|
||||||
import com.aizuda.easy.retry.common.core.util.JsonUtil;
|
import com.aizuda.easy.retry.common.core.util.JsonUtil;
|
||||||
import com.aizuda.easy.retry.server.model.dto.ConfigDTO;
|
import com.aizuda.easy.retry.server.model.dto.ConfigDTO;
|
||||||
@ -178,9 +179,9 @@ public class RetryEndPoint {
|
|||||||
try {
|
try {
|
||||||
Class<? extends IdempotentIdGenerate> idempotentIdGenerate = retryerInfo.getIdempotentIdGenerate();
|
Class<? extends IdempotentIdGenerate> idempotentIdGenerate = retryerInfo.getIdempotentIdGenerate();
|
||||||
IdempotentIdGenerate generate = idempotentIdGenerate.newInstance();
|
IdempotentIdGenerate generate = idempotentIdGenerate.newInstance();
|
||||||
Method method = idempotentIdGenerate.getMethod("idGenerate", Object[].class);
|
Method method = idempotentIdGenerate.getMethod("idGenerate", IdempotentIdContext.class);
|
||||||
Object p = new Object[]{scene, executorName, deSerialize, executorMethod.getName()};
|
IdempotentIdContext idempotentIdContext = new IdempotentIdContext(scene, executorName, deSerialize, executorMethod.getName());
|
||||||
idempotentId = (String) ReflectionUtils.invokeMethod(method, generate, p);
|
idempotentId = (String) ReflectionUtils.invokeMethod(method, generate, idempotentIdContext);
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
LogUtils.error(log, "幂等id生成异常:{},{}", scene, argsStr, exception);
|
LogUtils.error(log, "幂等id生成异常:{},{}", scene, argsStr, exception);
|
||||||
throw new EasyRetryClientException("idempotentId生成异常:{},{}", scene, argsStr);
|
throw new EasyRetryClientException("idempotentId生成异常:{},{}", scene, argsStr);
|
||||||
|
@ -13,7 +13,7 @@ import com.aizuda.easy.retry.common.core.model.IdempotentIdContext;
|
|||||||
public class SimpleIdempotentIdGenerate implements IdempotentIdGenerate {
|
public class SimpleIdempotentIdGenerate implements IdempotentIdGenerate {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String idGenerate(IdempotentIdContext idempotentIdContext) throws Exception {
|
public String idGenerate(IdempotentIdContext context) throws Exception {
|
||||||
return SecureUtil.md5(idempotentIdContext.toString());
|
return SecureUtil.md5(context.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,16 +3,35 @@ package com.aizuda.easy.retry.common.core.model;
|
|||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 幂等id上下文
|
||||||
|
*
|
||||||
|
* @author zy9567
|
||||||
|
* @date 2023-06-28 19:03
|
||||||
|
* @since 2.0.0
|
||||||
|
*/
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class IdempotentIdContext {
|
public class IdempotentIdContext {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 场景名称
|
||||||
|
*/
|
||||||
private String scene;
|
private String scene;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行器名称
|
||||||
|
*/
|
||||||
private String targetClassName;
|
private String targetClassName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数列表
|
||||||
|
*/
|
||||||
private Object[] args;
|
private Object[] args;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行的方法名称
|
||||||
|
*/
|
||||||
private String methodName;
|
private String methodName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user