我有一個ASP.NET MVC應用程序,它使用NHibernate將數據保存到SQL Server數據庫中。我可以使用異步執行Fire-and-Forget NHibernate保存在ASP.NET MVC應用程序中嗎?
有些情況下,我想將條目保存到數據庫中(最初由調用控制器上的操作方法觸發),但不需要阻止調用者。
試圖在數據庫中實現一個「即忘即用」機制,將數據庫調用放入任務中,然後在後臺調用它,以便控制可以立即返回給調用方是「安全」嗎? (或者用BackgroundWorker或者「async/await」關鍵字完成同樣的事情)我需要一個解決方案,NHibernate不會被ASP.NET試圖清理其ISession(每個請求)而絆倒。我正在使用Autofac進行會話的終身管理。我假設數據庫操作的生命週期比Web請求本身稍長一些,我不確定這種工作有多順利。
也許你應該把你的數據先排隊(MSMQ),並從那裏取出並執行保存到分貝?一切都可以在事務中工作,並有免費的事務性重試機制。 :) – dariol