是否有使用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();.如果这回答了这个问题,我会编辑并发布答案。 –