有没有一种优雅的使用NServiceBus调度任务的方法?有一种方法是我在searching the net时发现的。NServiceBus是否提供用于调度的内部API。
发布于 2012-12-20 11:29:05
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-语句),你就应该考虑进入一个传奇。
发布于 2011-07-22 00:33:43
注意:此答案对NServiceBus 2.0版有效,但不再正确。版本3具有此功能。去看看西蒙的答案,它对版本3是有效的!
NServiceBus没有内置的调度系统。它(在一个非常简单的层次上)是一个消息处理器。
您可以创建一个实现IWantToRunAtStartup (Run和Stop方法)的类,并在此基础上创建一个计时器或执行在特定时间将消息放到总线上所需的任何逻辑操作。
其他人将Quartz.NET与NServiceBus结合使用,以获得更精细的调度功能。
https://stackoverflow.com/questions/6753777
复制相似问题