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

时间:2017-05-26 20:02:03

标签: c# asp.net-mvc-5

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

2 个答案:

答案 0 :(得分:0)

我使用 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中删除的新缓存分钟。

答案 1 :(得分:-1)

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