首页 > 解决方案 > ASP.NET MVC - 如何运行单独的进程并让用户继续正常的应用程序使用?

问题描述

我有一个效率问题的 MVC C# Web 应用程序。我们有一个用户可以点击的控制器方法,它运行一个通知过程,有时可能需要搅动超过 10k 条记录,并发出相关的通知。此过程有时可能需要 15 分钟以上。

我的问题只是一般性的,感谢任何指导。我将如何使这个过程更有效率?理想情况下,用户会执行操作来点击我们的控制器并启动这个巨大的进程,然后在进程在后台运行时返回到正常的应用程序使用。

我会用异步控制器方法来实现这一点,还是什么?

标签: c#asp.net-mvcperformanceasynchronous

解决方案


仅仅因为您正在运行 MVC 网站应用程序,并不意味着您不能使用线程和异步处理。我建议您熟悉.NET 中的异步编程

使用最简单的方法,您将启动新任务,并且可以选择订阅回调方法以在需要时进行后期处理。

MVC 或任何其他网站的诀窍是如何启动任务以及如何将通知返回给用户。这将需要使用 JavaScript 进行一些客户端编程,但如果您倾向于在您的网站上进行更多繁重的处理,我建议您使用最现代的方法:带有 Blazor 的 ASP.NET Core ( Binary Razor )。在撰写本文时,Blazor 技术仍处于测试阶段。


推荐阅读