基于时间的任务计划程序引擎

时间:2018-09-26 07:18:54

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

我正在开发企业级应用程序。我在数据库中有一个事件表。我需要在精确日期和时间上更新数据库中事件的状态。最大可能有200毫秒的延迟。由于事件表会随着时间增长,因此我认为长轮询可能是性能问题。在我的应用程序(net.core Web API)中,我想构建一个接受ScheduledTask的结构,并以某种方式休眠直到下一个TimeToExecute时间到来。

public class ScheduledTask
{
    public string CurrentState {get; set;}
    public string NextState {get; set;}
    public DateTime TimeToExecute {get; set;}
}

为了克服我的处境,我会使用

  1. IHostedService; 通过这种方法,我不需要第三方工具。我可以注入IHostedService并使用它。我可以每150毫秒检查一次列表,并异步执行更新过程。

  2. HangFire; 在我搜索时,该工具或多或少地像IHostedService一样工作。

我的问题:

有没有解决我问题的实时方法?

P.S:我更喜欢将其保留在我的应用程序层中并且与环境无关。但是我愿意接受所有解决方案。

0 个答案:

没有答案