是否有使用NServiceBus安排任務的優雅方式?有一種方法,我發現,而searching the net。 NServiceBus是否提供內部API用於調度。如何使用NServiceBus安排每天運行的任務
回答
NServiceBus現已此建在
從這裏http://docs.particular.net/nservicebus/scheduling-with-nservicebus
public class ScheduleStartUpTasks : IWantToRunWhenTheBusStarts
{
public void Run()
{
Schedule.Every(TimeSpan.FromMinutes(5)).Action(() =>
Console.WriteLine("Another 5 minutes have elapsed."));
Schedule.Every(TimeSpan.FromMinutes(3)).Action(
"MyTaskName",() =>
{
Console.WriteLine("This will be logged under MyTaskName’.");
});
}
}
注意警告
當不使用它。你可以把一個計劃任務看作是一個簡單的從未 結局傳奇。但只要你的任務開始獲得邏輯 (if-/switch-statements),你應該考慮轉向一個傳奇。
哇!感謝這篇文章 – frictionlesspulley
這對我來說......反正有一段時間了。然後有一天它在生產中失敗了,即使公交的其他部分繼續工作,調度程序仍然停留了2天。它沒有記錄任何NSB錯誤消息。所以現在我正在尋找使用Quartz.NET來代替。顯然這是一個已知的問題... http://stackoverflow.com/q/23732174/61697 – demoncodemonkey
@demoncodemonkey已修復的已知問題https://github.com/Particular/NServiceBus/issues/2133。但石英。NET是一個完全有效的替代方案 – Simon
注意:此答案對NServiceBus 2.0版有效,但不再正確。版本3具有此功能。去閱讀西蒙的回答,它對於版本3是有效的!
NServiceBus沒有內置調度系統。它(在一個非常簡單的層面上)是一個消息處理器。
您可以創建一個實現IWantToRunAtStartup(Run和Stop方法)的類,然後創建一個計時器或執行任何需要在特定時間將消息放入總線的邏輯。
其他人已經使用Quartz.NET與NServiceBus一起獲得更多的粒度調度功能。
我使用Quartz來調度其他服務,直到我們開始使用NServiceBus進行消息傳遞。這是我第一次在我們的Quartz調度器失效後需要安排一些東西。 – frictionlesspulley
我使用Quartz來每小時觸發一個工作,並且該工作剛剛發佈了一個事件...該服務使用了IWantToRunAtStartup中的Run&Stop方法..這是一個很好的開始http://stuartcullinan.blogspot.com/2010/12 /building-nservicebus-timeout-manager.html,順便說一句,檢查出[NServiceBusContrib](https://github.com/nservicebus/nservicebus-contrib) – Sarmaad
請注意此答案不再正確 – Simon
- 1. 安排任務,每1小時運行
- 2. 如何安排每天使用服務執行的事件?
- 3. 如何安排C#Windows服務每天運行一個方法?
- 4. 如何在特定天數之後安排任務運行
- 5. 如何安排每月一日運行的芹菜任務?
- 6. android日程安排任務在特定時間每天執行
- 7. playframework每天與Akka運行任務
- 8. 如何安排一個Java程序每天在Windows中運行?
- 9. 如何安排每天運行AutoIt腳本?
- 10. 如何安排GcmTaskService在特定時間每天運行
- 11. 如何安排IIS SEO工具包每天運行
- 12. 安排每天在每分鐘運行一次的PgAgent作業
- 13. 如何使用dbms_scheduler將作業安排爲每天運行兩次
- 14. 我如何安排在每月的特定日期運行的芹菜任務?
- 15. 我如何做背景任務,每天早上運行一次?
- 16. scala - 如何每天運行一個任務11PM
- 17. 如何從Java每天運行一項任務?
- 18. 如何使用python安排任務
- 19. 如何使用Marklogic來安排任務
- 20. 我該如何安排Wordpress中的任務每週運行一次
- 21. 安排任務在登錄時運行
- 22. 如何安排每天,每兩天,從開始日期起每三天運行一次
- 23. 使用cron安排任務
- 24. 動態規劃:任務每一天,安排了最大利潤
- 25. Celerybeat在不同時間每天安排兩次任務
- 26. 如何使用在月底運行的芹菜來安排任務?
- 27. 如何安排JBoss任務?
- 28. 排隊的任務。運行
- 29. 運行任務週期性(每天一次/每週一次)
- 30. 如何安排一個任務在iron.io中定期運行
我們使用這種方法,它運作良好。你在做什麼樣的處理?你可能需要一個傳奇。 –
我正在嘗試使用相同的方法。但是我無法弄清楚如何在調度程序的實現中獲得總線的參考。 – frictionlesspulley
有趣我有同樣的問題。我最終明確要求容器提供總線實例:IBus總線= Configure.Instance.Builder.Build();.如果這回答了這個問題,我會編輯併發布答案。 –