指导我完成一项需要花费大量时间才能完成的任务的最佳方法?

时间:2012-03-05 18:40:55

标签: asp.net multithreading time-complexity

在asp.net Web应用程序中,我们需要开发一个具有以下功能的页面:

  • 阅读包含大约1,00,000个优惠券号的文本文件。
  • 为每个优惠券号创建PDF并将其保存在文件服务器中,并更新数据库。

这是一个耗时的过程。如果我们在主线程中执行它可能会发生超时错误。请 考虑以下几点,指导我做到这一点的最佳方法:

  • 显示优惠券的生成状态以及剩余数量。

谢谢, 保罗

2 个答案:

答案 0 :(得分:1)

在您的Web应用程序中

如果必须在ASP.NET应用程序中执行此操作,请考虑:

Outisde Your Web App

如果您想将其移出Web应用程序,可以将“作业”提交给其他应用程序,如Web服务或Windows服务。只需给它一系列优惠券号码,或者一个文件来拾取和解析。

对于已完成的每个优惠券,它可以将“已完成”标记放入数据库或将文件放到目录中,并且您的Web应用程序可以读取该标记以反馈给您的用户。

答案 1 :(得分:0)

如果您在单独的服务(例如WCF服务)中分离耗时的任务,那可能是最好的。您可以创建一个方法来处理10,000,000张优惠券并生成PDF,您可以让另一个方法检查处理状态,同时只在网页中显示处理图标。

在asp.net中还有其他替代方法asynchronous pages