2011-04-05 83 views
4

我們正在使用自己的主機並希望指定一個首先觸發的處理程序。我們有一個消息驗證處理程序,我們想在我們的Saga處理程序之前觸發。我們嘗試使用下面的代碼設置訂單,但是在我們的日誌中查看我們的傳奇消息處理程序首先觸發,然後驗證處理程序觸發。被難倒了,並想知道這個事件與這件事有什麼關係? 如果您有任何想法,請讓我們知道。從這裏NServiceBus消息處理程序未按預期順序觸發佐賀處理程序提前觸發

文檔:http://docs.particular.net/nservicebus/handlers/handler-ordering

NServiceBus.Configure.With() 
... 
.UnicastBus() 
     .LoadMessageHandlers<First<YourHandler>>() 

我們的代碼看起來是這樣的:

var bus = Configure.With() 
    ... 
    .UnicastBus() 
      .LoadMessageHandlers(new First<ValidationHandler>()) 
+0

只是好奇(不,我認爲這應該是需要的處理程序)如果你指定.AndThen (),它是否工作? – 2011-04-05 16:45:17

+0

是的,我們剛剛發現它的確如此。如果.AndThen 2011-04-05 17:13:13

+0

不幸的是,這意味着我們的自動化部署代碼需要額外的工作來實現這一點。順便說一句,我們正在使用NSB V2.5 – 2011-04-05 17:13:52

回答

1

更改您的代碼在NServiceBus常見問題的例子。我有同樣的問題,我也做

.UnicastBus() 
     .LoadMessageHandlers(new First<ValidationHandler>()) 

當我切換到

.UnicastBus() 
     .LoadMessageHandlers<First<YourHandler>>() 

它運行在預期的順序

相關問題