繁体   English   中英

ASP.NET MVC中的后台操作

[英]Background operations in ASP.NET MVC

在我的ASP.NET MVC 5应用程序中,我使用Redis作为LRU缓存来缓存长时间运行的数据库查询的结果。 每当用户请求这样的结果时,应用程序都会首先检查它是否已经被缓存...如果在缓存中找到了,则应用程序将返回缓存的结果。 如果不是,则应用程序将执行查询,然后缓存结果。

在少数情况下,应用程序可能需要写入大量缓存条目(> 10000)。 有没有一种方法可以立即响应用户的请求并在后台写入缓存?

我正在考虑着急地编写缓存,而忘了以类似的方式使编写缓存异步方法无效 我不在乎该方法的任何结果,无论它是否失败或在下一个请求到达应用程序之前是否完成都“无关紧要”……(该应用程序在任何情况下都不取决于缓存条目出席。)

在ASP.NET MVC中使用异步无效是一个好主意还是会导致问题? 如果没有,那么在不让用户等待的情况下写入缓存的正确解决方案是什么?

看看Hangfire

“挂起火灾:一种简单的方法,可以在ASP.NET应用程序内执行起火,忘记,延迟和重复发生的任务。不需要Windows服务。”

您可以返回void并使用QueueBackgroundWorkItem填充缓存。

QueueBackgroundWorkItem提供了一种运行短期后台任务的安全方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM