WebAPI:在后台更新和缓存/保留字符串变量

时间:2019-04-28 16:33:33

标签: c# asp.net asp.net-web-api

我很好奇,是否有办法定期运行用于更新缓存的共享变量的方法或任务,当调用WebAPI的Get请求时会返回该方法或任务。

变量是一个简单的短json字符串,它是所有外部调用者共享的默认值。该值本身不一定总是相同的,但是它会被计算出来,在调用webcontroller方法时运行该值可能会花费几秒钟,从而增加了返回字符串的时间。因此,我想在调用时保持字符串变量的高速缓存,以便在返回时快速返回,并在后台(可能每分钟或类似的时间间隔)定期运行计算。

我知道如何正确缓存该值,并且由于它是所有调用方共享的默认值,因此我不必考虑会话处理等问题。我不知道如何在WebAPI项目范围内定期运行缓存值的计算。我不想使用外部调用或单独的服务/应用程序执行此操作,我最好在WebAPI项目本身中寻找实现此目的的方法。

我知道使用Rest的WebAPI通常被设置为完全无状态,并且我也知道应用程序池的时间限制。我不介意这些限制,最坏的情况是,每20分钟(如果api处于空闲状态)到应用程序报废时(可能是1400+分钟),Get请求将花费几秒钟的额外时间才能返回计算结果。值而不是空的缓存。

我已经阅读了使用webcontroller方法,缓存和回调方法来执行此操作的方法,该方法在缓存计时器用完以调用controller方法时运行。如果是这样,如果有人可以详细说明该方法的工作方式或为我提供其他方法的指示,我将非常感激

0 个答案:

没有答案