【问题标题】:using hangfire schedule with unique id使用具有唯一 ID 的挂火时间表
【发布时间】:2016-06-23 09:42:09
【问题描述】:

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

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

问题是每当用户访问我的网站时,都会将新的预定项目添加到hangfire。

如何将 Hangfire 设置为在特定时间运行计划项目并为该计划提供唯一 ID?

【问题讨论】:

    标签: hangfire


    【解决方案1】:

    您可以在特定时间排队等待发生的事情,而不是在延迟之后,您只需要传递您希望 Job 被排队的时间:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多