在ASP.NET MVC中安排许多单独的作业

时间:2016-08-19 08:50:51

标签: c# asp.net asp.net-mvc scheduled-tasks

我想知道是否有办法安排在某些事情到期时运行的作业(达到特定的日期时间)。 在我正在为我需要的东西之一构建的应用程序中,这是为了允许用户打开特定广告的功能,并且在广告的内容旁边,他们将广告将过期的日期时间。我想知道是否有一种方法可以在创建广告时添加一个调度作业,并在达到日期时间时执行,而不是定期执行。此新调度作业仅适用于该广告。因此,存在与活动广告一样多的调度作业。当调度作业执行时,它将被删除,因为它将不再需要。 我找到了一个不完美的解决方案,涉及使用每隔一定时间定期运行的计时器,并检查一些广告的日期时间是否过期并采取适当的措施。 谢谢。

2 个答案:

答案 0 :(得分:1)

您可以为RecurringJob.AddOrUpdate(() => Console.Write("Easy!"), Cron.Daily);使用hangfire 它很容易与asp.net集成,而且所有任务都将在iis线程池之外执行 http://docs.hangfire.io/en/latest/background-methods/performing-recurrent-tasks.html

答案 1 :(得分:0)

为什么不使用Windows Scheduler?您可以非常轻松地从.net创建计划作业。

我必须说你的解决方案设计非常不寻常 - 拥有一个查看活动表/存储的单个轮询计划更为正常,并在达到执行日期/时间时执行这些活动。为每个单独的活动创建计划不会很好地扩展。