一个应用程序中的计划任务(.Net C#)

时间:2011-12-25 20:23:12

标签: c# .net scheduler

我有一个订阅数据库,我希望每隔x分钟为每次订阅运行一次。

但是每个订阅都有自己的时间+每隔x分钟它应该运行该函数。

它可以在同一时间运行许多订阅。

也许它应该看起来像一个计划任务,从一个特定时间开始,每隔x分钟运行一次到特定时间。

我希望我描述我想做的事情,我的英语不是最好的。

有没有人知道如何构建应用程序?

4 个答案:

答案 0 :(得分:5)

您有几个选择:

  • 使用SQL代理并使用所需的日程安排jobs(当然,这假定您使用的是SQL Server)。
  • 使用计时器编写Windows Service,查询数据库并根据需要执行不同的任务。

您提到scheduled tasks,这可能是另一种选择,但这需要您自动设置新任务以及要运行的实际任务。使用我上面概述的选项更容易做到这两点。

答案 1 :(得分:2)

我建议您使用System.Threading.Timer。要安排工作,请执行以下操作:

new Timer(_ => DoTheJob()).Change(your_interval_in_milliseconds, Timeout.Infinite);

然后在完成工作时,使用相同的代码安排下一次运行。这样可以防止同时运行同一作业的2个实例。 如果这不能恰当地回答你的问题,请告诉我。

答案 2 :(得分:1)

您可能正在描述Quartz.NET可以为您做些什么。看看,可能值得花一些时间。

答案 3 :(得分:0)

所以你应该写一些调度程序。它将从队列中获取任务并执行它们......您可以创建一个调度程序,例如每个任务将在一个单独的线程中运行,这将显着提高性能!

相关问题