我正在考慮使用Singleton會話來爲我們的應用程序寫請求日誌。休眠:使用單身會話來寫日誌(不刷新)
通常我會使用Hibernate與Lifestyle PerWebRequest,但在我的具體情況下沒有Http上下文(我們使用套接字線程來偵聽請求)。但是我注意到,由於我們只使用會話來記錄日誌,我可以使用一個單例 Hibernate會話以及。
即使多線程運行會話,所有請求日誌都會在會話中加起來,並在Hibernate感覺舒適時得到保存。沒有必要在之後立即閱讀日誌,這樣才能工作。
的代碼將是這樣的:
// Got socket request
// Doing some stuff here, saving to a legacy database (cannot use Hibernate with this one)
var logging = new Message(info);
loggingService.save(logging); // FYI: in case it fail, we don't want to roll back the previous work
我唯一擔心的是,當我們想要做負載均衡與多臺機器上運行2程序,那麼它可能是一個問題。我認爲在這種情況下,我們必須做一些鎖定/同步以避免可能的衝突(儘管我現在無法想到)。
單身人士會議可以使用嗎,或者有沒有想過的可能的影響?