从服务器删除缓存的时间问题

时间:2017-05-11 03:45:47

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

我正在尝试在我的服务器上自动执行某个进程。我希望我的程序每24小时运行一次,时间是凌晨12点00分。所以我实现了这里建议的方法:https://stackoverflow.blog/2008/07/18/easy-background-tasks-in-aspnet/

当我在本地运行我的程序时,它工作正常(即它在凌晨12:00:00运行)但是,当我在服务器上运行代码时,我看到Cache被随机删除(例如7:44) :03 PM,6:48:08 AM,1:33:47 PM,4:50:35等等)这是因为服务器管理缓存的方式不同,或者我错过了什么?

这是我在Global.asax.cs中的代码:

protected void Application_Start()
{
    // Some configuration here

    AddTask("NextRoundPreparer");
}

private void AddTask(string name)
{
    DateTime today = DateTime.Today;
    DateTime tomorrow = today.AddDays(1);

    OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
    HttpRuntime.Cache.Insert(name, name, null,
        tomorrow, Cache.NoSlidingExpiration,
        CacheItemPriority.NotRemovable, OnCacheRemove);
}

public void CacheItemRemoved(string key, object value, CacheItemRemovedReason reason)
{
    //Do some work here

    AddTask(key);
}

0 个答案:

没有答案