Мы используем декларативный атрибут транзакции spring для обеспечения целостности базы данных. Некоторые из нашего кода вызывают веб-службу, которая делает кучу вещей в sharepoint. Проблема в том, что когда веб-сервисы занимают больше времени, пользователи получают тупик из-за весны, которая задерживает серверную часть.
Если я создам новый поток внутри функции с декларативным атрибутом транзакции 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.
}
}
Какие-нибудь другие варианты, на которые я должен пойти?