使用C#安排函数在特定时间运行的最简单方法是什么?

Dan*_*ris 5 .net c# service scheduling

如果我在数据库中有很多要发送的消息,并且每行指定了发送消息的日期和时间,以及是否已发送消息的标志.

这些并不总是固定的间隔,并且可能希望同时发送多条消息.

在这种情况下,它会将它们排队并按创建时间顺序发送.

最简单的事情就是让一个函数一遍又一遍地运行,一旦完成就再次运行

所以它会:

  • 开始运行并检查当前日期/时间
  • 检查是否有任何未发送的消息
  • 发送所有消息,直到它开始运行之前和之后
  • 重新开始并获取当前日期/时间

我的问题是,持续运行方法只是非常低效,可能持续数小时或数天而不实际发送消息.

我认为在这种情况下的主要应变将放在数据库上,它将不断受到查询的影响.

是否有更好的方法来安排这样的事情发生.

或者只是执行上述操作,但每次运行时都会等待5分钟再重新运行.

Workflow 4是否提供适合调度的任何东西?

Jea*_*rin 2

您始终可以先发制人地读取该系列中的下一个时间值,并在此之前进行一次睡眠,而不是一遍又一遍地循环短暂睡眠。

不确定这是否像你想要的那么复杂