在 C# ASP.NET MVC 5 中设置每 10 分钟触发一次的计划程序



我正在尝试设置一个每 10 分钟触发一次的调度程序,激活数据库查询。我找不到任何关于此的好教程,一些建议会很棒。语言是C#,Web框架是MVC 5 ASP.NET。

我已经使用CacheItemRemovedCallback完成了这项工作

Global.asax文件中,在Application_Start()末尾添加此行

if (null != HttpContext.Current.Cache["cacheKey"]) return;
HttpRuntime.Cache.Add("cacheKey", "cacheValue", null, DateTime.MaxValue, TimeSpan.FromSeconds(600), CacheItemPriority.NotRemovable, new CacheItemRemovedCallback(CacheItemRemovedCallback));

这将创建新的缓存项,该项目将在 10 分钟后触发

Global.asax中添加以下方法

public void CacheItemRemovedCallback(string key, object value, CacheItemRemovedReason reason)
{
     //Your code here, call database procedures ...
     HttpRuntime.Cache.Add("cacheKey", "cacheValue", null, DateTime.MaxValue, TimeSpan.FromSeconds(600), CacheItemPriority.NotRemovable, new CacheItemRemovedCallback(CacheItemRemovedCallback));
}

这里发生的情况是,您正在创建新的缓存并在 10 分钟后将其删除,删除缓存时,将调用事件CacheItemRemovedCallback,以便您可以完成工作,然后创建将在 10 分钟内删除的新缓存。

查看用于创建后台处理作业的 HangFire https://www.hangfire.io/。

最新更新