我的应用程序允许用户上传处理过的CSV文件,并将记录写入数据库。但是这个文件可以包含非常多的记录,例如300 000.在这种情况下,它可能需要长达半个小时来处理所有这些记录,我希望我的应用程序不要冻结此期间的页面,但是显示进度和可能是一些错误,或者最好允许用户移动到另一个页面并不时返回检查进程。 我能以什么方式实现这一目标?
答案 0 :(得分:0)
我们采取的解决类似问题的方法如下:
使用普通的http方法上传文件。
在本地保存文件。
将文件提交到异步Web服务(.asmx)。此过程将插入一条记录,该记录将存储导入的状态,并实际开始导入记录。处理完所有记录后,相应地设置状态。
这一切都发生在一个流程中。因为WebMethod是异步的,所以它将返回而不等待自己完成,导入将在后台进行。
现在,您将用户重定向到定期检查异步导入状态的页面,直到完成为止。您还可以向此流程添加其他信息,例如通过批处理记录并相应地更新其他字段来进行。
这对我们来说已经很好了很多年了。我没有添加任何真实的细节,因为这将特定于您的实现。