Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在asp.net web API中定期调用控制器操作_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 在asp.net web API中定期调用控制器操作

Asp.net mvc 在asp.net web API中定期调用控制器操作,asp.net-mvc,Asp.net Mvc,我在asp.net web API MVC 4中执行了一个控制器操作,由于它运行时间长,我将其输出缓存了5分钟。然后让一个.NET客户端使用这个API。现在我希望在缓存过期之前,应该在WebAPI中再次自动调用该操作。因此,每次客户端获得缓存输出时。怎么做? 是否可以从web API本身调用控制器操作,以便每次都对其进行缓存,或者我必须在ASP.NET客户端中进行缓存? 下面是来自web api的操作。要在服务器上缓存结果,我正在使用Strathweb.CacheOutput 0.5.0包 [S

我在asp.net web API MVC 4中执行了一个控制器操作,由于它运行时间长,我将其输出缓存了5分钟。然后让一个.NET客户端使用这个API。现在我希望在缓存过期之前,应该在WebAPI中再次自动调用该操作。因此,每次客户端获得缓存输出时。怎么做? 是否可以从web API本身调用控制器操作,以便每次都对其进行缓存,或者我必须在ASP.NET客户端中进行缓存? 下面是来自web api的操作。要在服务器上缓存结果,我正在使用
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);
    }

没有这样的机制,输出缓存在过期后自动刷新。一种解决方案是创建一个工作进程或后台作业,在一定的持续时间后自动“ping”API端点(在您的情况下,可能是每4.5分钟而不是每5分钟一次,以允许数据库调用/处理
givedisabledusers()
)。

是的,我也想这样做。这个工作进程将在API、客户端中,还是将是一个单独的服务?你能说得更具体一点吗?它不会出现在API中,而是会出现在一个单独的应用程序/服务中。有很多选择:1.)您可以编写一个小型控制台应用程序,点击API端点并将其作为计划作业运行。2.)您可以编写定期ping端点的后台服务。