我正在开发企业级应用程序。我在数据库中有一个事件表。我需要在精确日期和时间上更新数据库中事件的状态。最大可能有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;}
}
为了克服我的处境,我会使用
IHostedService
;
通过这种方法,我不需要第三方工具。我可以注入IHostedService
并使用它。我可以每150毫秒检查一次列表,并异步执行更新过程。
HangFire
;
在我搜索时,该工具或多或少地像IHostedService
一样工作。
我的问题:
有没有解决我问题的实时方法?
P.S:我更喜欢将其保留在我的应用程序层中并且与环境无关。但是我愿意接受所有解决方案。