gpt4 book ai didi

c# - 使用 ASP.NET MVC 应用程序定期插入 Azure 数据库

转载 作者:行者123 更新时间:2023-11-30 18:21:10 24 4
gpt4 key购买 nike

我想知道如何实现一个解决方案来检索我已抓取的数据,并使用它在 ASP.NET MVC Web 应用程序中显示。

当前的实现会抓取数据并将其从 Controller 显示到 View ,但是这样做时,由于当请求查看包含抓取数据的页面时,抓取器会运行,因此查看网页的请求将花费很长时间已处理。

我可以采取任何措施将数据检索和网站分开吗?

目前,我有一个用于抓取数据的控制台应用程序抓取器类,以及一个用于显示数据的 ASP.NET MVC Web 应用程序。我怎样才能轻松地将它们结合在一起?

最佳答案

根据系统大小,我认为你可以做两件事:

  • 定期抓取数据并将其保存在内存中
  • 定期抓取数据并将其保存在数据库中

值得注意的是,如果废弃的数据很大,您需要将其存储在数据库中,否则您可以保留它的内存并极大地提高性能。

后台工作人员会定期在 ASP.NET 中运行任务。定期运行任务的一些简单方法是在 Application_Start 中启动线程。我不会更深入地实现,因为它已经得到了回答。您可以在这里重读:Best way to run scheduled tasks

要将数据保存在内存中,您可以使用如下内容:

public static class Global
{
public static ConcurrentBag<ScrapedItem> ScrapedItems;
}

*注意,有必要使用线程安全的集合,因为获取和添加到此集合将通过不同的线程完成:一个来自后台工作线程,一个来自请求。或者,您可以在获取/设置非线程安全集合时使用 lock 对象。

关于c# - 使用 ASP.NET MVC 应用程序定期插入 Azure 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36028890/

24 4 0
文章推荐: c# - 加载服务帐户 Json key 文件
文章推荐: c# - 从另一个泛型类添加泛型方法约束
文章推荐: c# - 我如何从 Func 转换为 Func c#