我們使用NserviceBus作爲我們的信息基礎設施,使用RabbitMQ作爲傳輸。 我試圖從5. *版本升級到NServiceBus 6.0。在5.0中,我們可以使用「Bus.Defer()」推遲事件。但它似乎在6.0中,我們可以推遲只有消息,但不是事件?如何推遲NServiceBus 6.0中的事件?
如果我在下面的代碼中使用消息是一個「事件」,我會收到一個錯誤消息,說應該發佈事件。
var sendOptions = new SendOptions();
sendOptions.DoNotDeliverBefore(DateTimeOffset.Now.AddMinutes(30));
sendOptions.RouteToThisEndpoint();
return context.Send(message, sendOptions);
但context.Publish(消息,新PublishOptions())方法採用在 「PublishOptions」 不具有一個選項,以推遲。
我在這裏錯過了什麼嗎?感謝有人能幫助。
事件是基於已經發生了,不是你需要推遲行動的東西達到相同的。如果你需要推遲一個行動,那麼也許它應該是一個命令?沒有更廣泛的問題範圍,很難說。你能從流程的角度添加一些你正在做的事情的細節嗎? –
有一個產品創作系統,在產品數據發生變化時發佈事件。我們是訂戶,當產品數據發生變化時,我們將不得不更新我們的系統。有些變化不會立即生效,所以我們將不得不推遲其中的一些事件。例如,一個事件可能看起來像這樣。 2017年9月22日 EFFECTIVEDATE> ProductDataUpdated> 的事實,即產品的更新是一個事件或消息或命令總是有爭議的,但我不能將其更改爲消息或命令,因爲這是造成其他問題。 –