有没有使用 NServiceBus 安排任务的优雅方式。我在网上搜索时发现了一种方法。NServiceBus 是否提供用于调度的内部 API。
问问题
3754 次
2 回答
9
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),您就应该考虑转移到 saga。
于 2012-12-20T03:29:05.053 回答
3
注意:此答案对 NServiceBus 2.0 版有效,但不再正确。版本 3 具有此功能。去阅读西蒙的答案,它对第 3 版有效!
NServiceBus 没有内置的调度系统。它(在非常简单的层面上)是一个消息处理器。
您可以创建一个实现 IWantToRunAtStartup(运行和停止方法)的类,然后从那里创建一个计时器或执行您需要执行的任何逻辑,以便在特定时间将消息放到总线上。
其他人使用Quartz.NET和 NServiceBus 来获得更精细的调度功能。
于 2011-07-21T16:33:42.523 回答