6
MassTransit中處理程序和消費者之間有什麼區別?我已經看過使用其中一個或另一個的例子,但從概念上講,我不清楚兩者之間的區別以及爲什麼要選擇其中一個。MassTransit中處理程序和消費者之間的區別
MassTransit中處理程序和消費者之間有什麼區別?我已經看過使用其中一個或另一個的例子,但從概念上講,我不清楚兩者之間的區別以及爲什麼要選擇其中一個。MassTransit中處理程序和消費者之間的區別
Consumer是一種您註冊的類型,它具有處理Consumer對象生命週期的專用處理程序。
處理程序實際上只是一個通用的事件處理程序。
如果您只需要一個小的Action<>
塊來解決消息上的任何操作,就可以使用處理程序。如果您想註冊一個具有生命週期的類型來解析消息中的任何操作,您將使用消費者。一般來說,你最終會想要一個消費者,因爲希望你的容器爲這個類型解析依賴關係,而不是隻把它們放在你的處理程序的範圍內。但處理程序對於小事情或請求響應場景非常適用。
根據你的描述,那麼,我認爲每個消息都會有一個Consumer實例?如果我在同一個類上設置了一個錯誤處理程序,那麼在處理錯誤時會使用最後一個實例還是全新實例? –
取決於註冊。如果您使用IoC容器助手註冊,它會讓容器維持生命週期。還有,考慮到狀態在消息間被共享是很麻煩的,因爲如果它是單例的話,通常會有多個實例 - 每個線程至少有一個實例。 – Travis