2015-04-30 40 views
4

的.NET Framework 4.5.1介紹的交易支持異步方法,例如:事務支持在Azure中WebJobs異步功能

using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) 
{ 
    var result = await DoWorkAsync(cancellationToken) 
     .ConfigureAwait(false); 

    await DoMoreWorkAsync(result, cancellationToken) 
     .ConfigureAwait(false); 

    scope.Complete(); // commit to perform all operations above 
} 

編號:https://msdn.microsoft.com/en-us/library/dn261473(v=vs.110).aspx

可這在Azure中WebJobs使用異步功能那麼,在主機關閉的情況下,要收緊工作單元並提供更好的冪等操作?如果是這樣,它會對性能產生什麼影響?

更新:

它看起來像交易(單級)與服務總線隊列(標準級),但與存儲隊列支持。 Ref:'Foundational Capabilities'部分https://msdn.microsoft.com/en-us/library/azure/hh767287.aspx

回答

0

無論是誰調用您的代碼,數據庫訪問的工作方式都是相同的。無論是ASP.NET或WCF或一些Azure框架。

您確實可以使用事務來完成您正在執行的工作。這基本上是一件好事。例如,您可以自動檢查給定的隊列消息或已經處理的任何消息。如果你只是簡單地保釋出來,你就是這樣的冪等。

性能影響不受WebJobs的影響。除非您使用要避免的分佈式事務,否則事務非常便宜。