我在我的asp.net web 4中做了一个控制器操作,因为它的运行时间很长,所以我缓存了它的输出5分钟。然后创建一个.NET客户端来使用这个API。现在,我希望在缓存过期之前,应该在web中再次自动调用操作。因此,每次客户端获得缓存的输出时。怎么做?是否有可能从web本身调用控制器操作,以便每次都缓存它,或者我必须在ASP.NET客户机中进行缓存?以下是来自web的操作。要在服务器上缓存结果,我使用Strathweb.CacheOutput 0.5.0包
[System.Web.Http.HttpGet]
[CacheOutput(ClientTimeSpan = 300, ServerTimeSpan = 300)]
public HttpResponseMessage givedisabledusers()
{
var result = dbh.givedisabledusers();
return Request.CreateResponse(HttpStatusCode.OK, result);
}发布于 2016-05-25 13:03:05
没有这样的机制,输出缓存在过期后自动刷新自己。一种解决方案是创建一个工作进程或后台作业,在一定的持续时间后自动'pings‘API端点(在您的例子中,可能是每4.5分钟一次,而不是5分钟,以便允许givedisabledusers()的db调用/处理)。
https://stackoverflow.com/questions/37436379
复制相似问题