所以我有一个 MVC 应用程序,管理员可以在其中登录,并上传用户详细信息(名字/姓氏/地址/电话)的 CSV。然后将此 CSV 导入数据库。
这适用于小型 CSV,但不适用于有很多行的 CSV。
我认为异步执行此任务可能会很好,尽管我不想在计划任务中处理它。
此外,我希望能够使用 JavaScript 轮询该过程,以获取有关导入进展情况的消息。例如,10 秒后,“已导入 100000 个订阅者中的 3000 个”。
我该如何解决这个问题?
所以我有一个 MVC 应用程序,管理员可以在其中登录,并上传用户详细信息(名字/姓氏/地址/电话)的 CSV。然后将此 CSV 导入数据库。
这适用于小型 CSV,但不适用于有很多行的 CSV。
我认为异步执行此任务可能会很好,尽管我不想在计划任务中处理它。
此外,我希望能够使用 JavaScript 轮询该过程,以获取有关导入进展情况的消息。例如,10 秒后,“已导入 100000 个订阅者中的 3000 个”。
我该如何解决这个问题?
快速的解决方案是在单独的线程中处理它。这将确保该过程对您当前的 Web UI 线程没有任何影响。
另一个解决方案与您提到的异步控制器有些相似。
解决方案 #2:查看这篇非常有用的帖子,了解您所要求的确切解决方案 -需要一个带有用户反馈的 ASP.NET MVC 长时间运行的进程。