叫我有一個類庫DLL稱爲AppCore存儲所有數據庫相關的訪問,幷包含所有應用程序邏輯。遲髮型在單獨的類庫的.dll從ASP.Net MVC5
此庫由ASP.Net(MVC5)應用程序使用,該應用程序爲所有數據庫訪問(通過公開方法)和應用程序特定邏輯(實體框架或DBContext未暴露於DLL外)使用該庫。
AppCore有幾種方法可能需要幾分鐘才能運行。這些方法需要從ASP.Net應用程序中調用。
我想大家都知道,在ASP.Net長時間運行的調用都是:「不,不這樣做,它會吸型的東西,你會罵爲以後做這件事」。
所以我期待到這是由等Scott Hanselman推薦給長時間運行的ASP.Net調用Hangfire.io。
現在,這裏我的問題是,如果有人知道如何將反過來被ASP.Net應用程序所消耗的類庫DLL來實現遲髮型。 AppCore.dll中有DbContext,並且它有長期運行的方法。但是這些調用將來自ASP.Net,它對數據庫沒有直接的瞭解或長時間運行的代碼邏輯。
編輯:我能想到的最好的方法是在ASP.Net應用程序中安裝Hangfire,併爲此設置一個單獨的DBContext。然而,我會喜歡將它全部放在AppCore DLL中,而不是傳播邏輯。
你似乎是在右邊track.Hangfire是完美的,從ASP.net脫機任務。但是,我不確定我是否瞭解您關心的來源。你聲明該appcore。DLL擁有它自己的依賴關係,比如dbcontext等,但是你打算在你的ASP.net代碼中創建一個dbcontext。這是因爲你需要在某處注入dbcontext? –
那麼我認爲Hangfire需要我在ASP.Net站點的Startup.Configuration中運行(如howto所述)。但是,由於ASP.Net不知道數據庫,所以這變得棘手。目前考慮爲Hangfire創建一個單獨的前端數據庫,並且不要「污染」核心數據庫。 – JensB
如果我只是在單獨的DLL中使用hangfire,並且在ASP.Net網站的啓動過程中不做任何事情,它仍然會持續嗎? – JensB