使用具有唯一ID

时间:2016-06-23 09:42:10

标签: hangfire

我正在使用hangFire通知用户他今天的会议。这是我的应用程序启动代码或其他定期运行的方法

TimeSpan timeSpan = DateTime.Now- notificationTime ;
BackgroundJob.Schedule(() => sendNotification(reminder.Meeting_Id), timeSpan); 

问题是每当用户访问我的网站时,就会将新的计划项目添加到hangfire中。

如何设置Hangfire在特定时间内运行预定项目并为此日程安排提供唯一ID?

1 个答案:

答案 0 :(得分:0)

你可以在某个特定时间而不是在延迟之后将某些事情排队,你只需要传入你希望将这个工作排队的时间:

String uniqueJobId = BackgroundJob.Schedule(() => Console.WriteLine("Task"), notificationTime);

Schedule方法还返回Job的String Id,以便您可以在以后引用它。

请记住,此时您的作业将被排队,这可能会导致等待它的执行,具体取决于您的队列状态以及服务器是否可以处理它。除了确保你有足够的容量来保持你的队列长度以外,你无能为力。