作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在使用声明性 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/
嘿。本周的一个教程,其中一个问题要求通过使用其他函数 formatLine 和 formatList 创建一个函数 formatLines,以格式化行列表。 我的代码是这样的; type Line =
我是一名优秀的程序员,十分优秀!