2014-07-02 52 views
0

我正在使用NSB 4.4.2 我希望在我的傳奇中有類似心跳的內容來顯示處理統計信息。 當我請求超時它發送到sagas輸入隊列。 如果在此超時消息之前有很多消息,則可能不會在特定時間觸發IHandleTimeouts。 這是一個錯誤?或者我如何使用單獨的隊列來處理超時消息?如何爲NSB指定另一個超時隊列?

感謝

回答

1

你是正確的 - 當超時是準備被分派,它被髮送到端點的輸入隊列,如果有在那裏已經有很多其他的消息了,它將不得不等待輪到它被處理。

您可能要考慮的另一件事是,當時端點可能會關閉。

如果您希望確保在超時時間(或非常接近)時調用您的saga代碼,則需要首先設置高可用性部署。然後,您應該考慮設置該端點所需的SLA - 應該如何處理消息,然後監視時間以便違反SLA性能計數器。

在這裏看到更多的信息。http://docs.particular.net/nservicebus/monitoring-nservicebus-endpoints

你應該準備根據需要,以保證足夠的處理能力,以跟上負載來向外擴展您的端點

注:我們之所以使用用於處理這些超時的相同傳入隊列是設計出來的。超時消息幾乎總是具有相同的優先級或低於正在處理的其他商業消息。因此,讓它們排在其他信息之前是沒有意義的。

0

超時被送到[endpointname] .timeouts

+0

將ID爲50c5cbde-401e-4a44-b9f0-a35d000014aa的消息XXX.HeartbeatTimeout發送到目的地YYY @ ZZZ。 – Sim

+0

凡YYY @ ZZZ - 傳奇隊列名 – Sim

+0

也許你可以提供更多的細節? HartbeatTimeOut是您自己的自定義設置?你指的是serviceControl心跳消息? –

相關問題