gpt4 book ai didi

java - Spring新事务与Retryable相结合

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:35 25 4
gpt4 key购买 nike

如果我有一个方法,对于某个异常有 Spring 可重试,并且还有一个 Transactional(Requires_new),那么每次重试完成时,它会创建一个新事务还是使用现有事务?

@Retryable(maxAttempts = 5, backoff = @Backoff(delay = 250), include = {ActivitiOptimisticLockingException.class})
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void setVariable(String processId, String variableName, String variableValue){
engine.getRuntimeService().setVariable(processId, variableName, variableValue);
}

这里实际上会发生什么?

最佳答案

每次都会创建新的交易。它与从 spring 上下文获取服务并调用方法 N 次相同。每次调用都会创建新事务(使用您添加到服务或方法中的传播)。调用您的事务服务方法,调用它的代理,也重试调用该代理。另外,您的交易可能会超时,请在新的超时时间内重试尝试调用,而不是一次超时尝试 N 次

关于java - Spring新事务与Retryable相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49027968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com