c# - ASP.NET MVC - 如何运行单独的进程并让用户继续正常的应用程序使用?
问题描述
我有一个效率问题的 MVC C# Web 应用程序。我们有一个用户可以点击的控制器方法,它运行一个通知过程,有时可能需要搅动超过 10k 条记录,并发出相关的通知。此过程有时可能需要 15 分钟以上。
我的问题只是一般性的,感谢任何指导。我将如何使这个过程更有效率?理想情况下,用户会执行操作来点击我们的控制器并启动这个巨大的进程,然后在进程在后台运行时返回到正常的应用程序使用。
我会用异步控制器方法来实现这一点,还是什么?
解决方案
仅仅因为您正在运行 MVC 网站应用程序,并不意味着您不能使用线程和异步处理。我建议您熟悉.NET 中的异步编程。
使用最简单的方法,您将启动新任务,并且可以选择订阅回调方法以在需要时进行后期处理。
MVC 或任何其他网站的诀窍是如何启动任务以及如何将通知返回给用户。这将需要使用 JavaScript 进行一些客户端编程,但如果您倾向于在您的网站上进行更多繁重的处理,我建议您使用最现代的方法:带有 Blazor 的 ASP.NET Core ( Binary Razor )。在撰写本文时,Blazor 技术仍处于测试阶段。
推荐阅读
- jasmine - 如何使用 Jasmine 测试 Phaser 3 项目?
- php - 由于警告无法上传我的自定义插件:dirname()
- r - 如何使用 R 对复杂函数进行符号微分
- php - 如何将 php 变量传递到另一个页面而不将其重定向到该页面?
- php - 如何解决:在为访问令牌交换授权代码时,已批准的应用程序得到“客户端身份验证失败” - 仅在服务器上
- reactjs - 将数组传递给道具以创建多个盒子阴影
- prometheus - Prometheus 几分钟后会自动删除警报
- javascript - 如何修复 Angular 6 通用 server.js 中的“ReferenceError:未定义窗口”错误
- android - Android中的MVVM存储库
- c# - 如何连接json值?