後我目前在建設,通過一個基本的Web服務收到數以千計的小消息的應用程序的過程中,消息發佈到消息隊列(RabbitMQ的)。該應用程序使用StructureMap作爲其容器的Dependancy Injection。恢復資源的錯誤
我有消耗的消息隊列和仍然存在的消息發送到數據庫(SQL Server)的一個獨立工作者應用。
我已經實現了SQL連接和RabbitMQ的連接爲單身(線程局部)。
在一個理想的世界裏,這一切工作正常,但如果SQL Server或RabbitMQ的連接中斷,我需要重新打開它,或可能部署和重新創建/重新連接資源。
我寫了一個基本類,作爲一個工廠,在它返回資源之前,檢查它是連接/打開/工作,如果沒有,處置它並重新創建它 - 我不確定這是否是「最佳實踐「或者如果我試圖解決已經解決的問題。
任何人都可以提供關於如何實現長時間運行的任務的建議,這些任務執行大量小任務(在我的情況下是單個INSERT語句),不需要爲每個任務實例化對象,但可以從錯誤中正常恢復作爲丟失的連接?
RabbitMQ的連接似乎是昂貴的,並且在高負荷的工作,我可以迅速耗盡手柄,所以我想重複使用(每線程)相同的連接。