gpt4 book ai didi

Spring::如果一个新线程会被 Spring 在事务中强制执行

转载 作者:行者123 更新时间:2023-12-03 17:50:21 27 4
gpt4 key购买 nike

我们正在使用声明性 spring 事务属性来确保数据库完整性。我们的一些代码调用了 webservice,它们在 sharepoint 中做了很多事情。问题是当 Web 服务需要更长的时间时,用户会从阻止后端的 spring 中陷入僵局。

如果我在具有 spring 事务声明属性的函数中创建一个新线程,它会被 spring 忽略吗?

[Transaction(TransactionPropagation.Required, ReadOnly = false)]
public void UploadPDFManual(/*parameters*/)
{
//DO some data base related things

if (revisionPDFBytes != null)
{
//my sharepoint call which calls webservice
Task.Factory.StartNew(() => DocumentRepositoryUtil.CreateSharepointDocument(docInfo)); // I draw a new thread from ASPNET worker thread pool.
}
}

还有什么我应该去的选择吗?

最佳答案

您不需要在事务中执行此操作。事务使数据库正确保存对象。就是这样。所有其他的事情都必须在事务提交之后完成。在 Java 中,您可以使用 Spring 的事务同步或 JMS 来实现。看看接受的答案 over here .

More useful info特定于 .NET(见 17.8)。

关于Spring::如果一个新线程会被 Spring 在事务中强制执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22985548/

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