如何使用BackgroundWorker& amp;执行SQL查询使用C#的ASP> NET中的异步模式

时间:2014-05-24 04:25:02

标签: asp.net asynchronous backgroundworker

我有一个拥有近6亿条记录的数据库。我想通过上传excel文件直接进行搜索,所以当我上传excel文件时,它应该开始在后台搜索,并显示状态为'进行中'一旦完成,该过程应该停止并给出消息“已完成”

我可以编写用于上传文件xls文件的代码并通过常规方式搜索,但是如何使用asp.net C#在异步模式下使用BACKGROUND WORKER进行写入。

我将上传带有50,00条记录的excel文件,以便从数据库中的6亿条记录中执行搜索。

1 个答案:

答案 0 :(得分:0)

定义您的要求

  • 搜索需要的典型时间
  • 此类搜索可能带来多少结果(50K?600M?)
  • 你不想在结果页面上全部显示它们,不是吗?

取决于要求,您可以采取的方法很少,例如

  • 设置要记录请求的数据库或MSMQ。然后,您的Web应用程序可以监视请求的状态,以便随后通知用户它已完成。
  • Asynchronous Pages

我会选择我的建议和

  1. 将文件/日志请求上传到数据库
  2. 设置db作业,它将继续执行请求并将所有结果记录到表中
  3. 不要等到搜索完成,而是调用检查结果表的ajax
  4. 类似主题已作为其他问题的一部分进行了讨论:Long-running code within asp.net processBackgroundWorker thread in ASP.NET