我们正在使用Jetty + Spring。我的WebService HostService并行接收N个请求(请求到达我的webservice时记录时间)但是当尝试调用Transactional add方法时,类似于下面的代码片段
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class ClassA {
@Transactional
public Host add(Host host) {
//logging time
Thread.sleep(100);
}
}
现在从代码服务我调用了ClassA的add方法,并记录了时间,一次只有8个请求到达这里,然后当一个完成其他启动时。
我已经尝试通过实际的webservice调用和本地进程调用来删除Thread.sleep,但这并没有帮助。但是,当我删除@Transactional
时,所有请求都会同时发送到add方法,因此@Transactional
会出现问题。
我想了解
@Transactional
实际如何运作,以及为什么它限制批量调用8次,我可以将此批次更改为更高的数字。