2014-07-01 81 views
1

如果我的傳奇的Handle()獲取傳入消息這確實MarkAsComplete(調用我創建開始NServiceBus:取消)計劃任務

Schedule.Every(TimeSpan.FromMinutes(1)).Action("TaskName",TaskMethod); 

現在計劃任務,我創建的計劃任務不取消。

如何取消該任務?

回答

0

docs

當創建任務它被賦予一個唯一的標識符。該任務的標識符 通過消息發送到超時管理器。 當超時,超時經理返回一個包含該標識符的端點與計劃任務的消息 ,該 端點使用該標識獲取並從其內部的任務列表調用任務。

你可以看一下一個計劃任務作爲一個簡單的永無止境傳奇

所以,在任務計劃在端點級別 - 只是因爲你是在調用來自一個傳奇的任務並不意味着這個任務正在執行與傳奇一樣的「範圍」。

在他們給出的例子中,調度程序是在總線啓動時創建的,可能只有當主機容器停止運行時纔會停止。

+0

是否有任何內置的調度程序,可以讓我創建一個可以取消的任務?或者我應該使用像Quartz.Net這樣的東西? – user3344591

+0

在NServiceBus中可能會有一些未公開的取消任務的方式,但如果失敗了,那麼您應該使用另一個具有更豐富API的調度程序。 –

+0

計劃任務就像一個簡單的永無止境的傳奇。如果您希望您的計劃任務更加複雜或結束,您可以使用任何業務邏輯編寫完整的傳奇。 –