我有一個API端點需要儘快返回給調用者。它目前返回1ms以下。但是,如果我在數據庫中記錄了一些內容,現在需要接近10毫秒。請求完成後的處理
你會如何處理完成請求,然後在請求完成後進行某種處理?我嘗試了Response.Body.Flush(),但是沒有完成請求,它仍然需要全部10ms。它看起來像是發送/清除有效負載,但請求仍然沒有完成,直到操作方法完成。
它會在中間件中執行日誌記錄嗎?
編輯:
一個解決辦法,我發現是使用FluentScheduler這樣的:
JobManager.Initialize(new Registry());
JobManager.Start();
Program.cs中
前host.Run(),然後從這樣的活動時間表的緊迫任務:在中間件
JobManager.AddJob(() =>
{
// do something...
}, (s) => s.ToRunOnceIn(1).Seconds());
這有點廣泛,不知道您是否使用任何消息代理/總線或查看特定的代碼。也許發佈一些你正在使用的代碼。最直接的方法是使用消息總線,然後啓動一個事件並稍後記錄它 – Tseng
我沒有使用任何類型的排隊系統。我希望在框架中有一些支持這一點的東西。 – pbz
Response.OnCompleted接近,但連接在運行時仍處於打開狀態。 – pbz