REQ-3201: 预设按钮幂等控制
This commit is contained in:
parent
2594ae9344
commit
e91a557bab
@ -138,7 +138,7 @@ public class CardManager {
|
||||
boolean updated = false;
|
||||
// 不要放到for里面去了
|
||||
CardRequestContext<?> requestContext = CardRequestContext.create(request);
|
||||
for (List<Card> cards : cardsCursor(request)) {
|
||||
for (List<Card> cards : cardsCursor(request, cardProps.getUpdateCardBatchSize())) {
|
||||
updated = true;
|
||||
CardLogger cardLogger = cardLoggers.createLogger(requestContext, cards);
|
||||
execTransactional(() -> {
|
||||
@ -161,7 +161,7 @@ public class CardManager {
|
||||
|
||||
public void firePresetButtonPressed(CardUpdatePresetButtonRequest request) {
|
||||
TemplateModelV3 templateModel = cardSupport.ensureImChannelPresent(request.getTemplateCode());
|
||||
for (List<Card> cards : cardsCursor(request))
|
||||
for (List<Card> cards : cardsCursor(request, cardProps.getUpdateCardBatchSize()))
|
||||
firePresetButtonPressedImpl(request, templateModel, cards);
|
||||
}
|
||||
|
||||
@ -202,8 +202,8 @@ public class CardManager {
|
||||
}
|
||||
}
|
||||
|
||||
RecordCursor<Card> cardsCursor(CardUpdateRequest request) {
|
||||
return new RecordCursor<>(100, Card::getId, () -> cardDao.lambdaQuery()
|
||||
RecordCursor<Card> cardsCursor(CardUpdateRequest request, int batchSize) {
|
||||
return new RecordCursor<>(batchSize, Card::getId, () -> cardDao.lambdaQuery()
|
||||
.eq(Card::getAppCode, request.getAppCode())
|
||||
.eq(Card::getTemplateCode, request.getTemplateCode())
|
||||
.eq(Card::getBizCode, request.getBizCode())
|
||||
|
||||
@ -21,6 +21,7 @@ public class CardProps {
|
||||
private boolean enableCardLog = true;
|
||||
private boolean deleteCardsWhenSendFail = true;
|
||||
private boolean enableCardIdempotent = true;
|
||||
private int updateCardBatchSize = 100;
|
||||
private Set<String> idempotentFreeTemplateCodes = new HashSet<>();
|
||||
|
||||
boolean isIdempotentFree(String templateCode) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user