gpt4 book ai didi

c# - .Net Core 2.1 长任务上报进度

转载 作者:行者123 更新时间:2023-11-30 12:20:30 24 4
gpt4 key购买 nike

我正在使用 Core 2.1 和 Entity Framework 将一个非常古老的 VB 遗留应用程序重写为基于浏览器的 C# ASP.Net 应用程序和后端到 SQL 服务器。

一些功能是长时间运行的任务。一个示例是地址地名词典 CSV 文件的导入。这些文件的大小通常为 50-100Mb,需要解析。我编写了一个 uploader 和导入函数,运行时间大约为 15 分钟——其中大部分是数据库写入时间。

我正在尝试找到一种方法来运行导入过程,以便它可以向客户端浏览器报告进度,理想情况下是将菜单选项更改为进度条,直到任务完成 - 因为 _layout.cshtml 已打开每个页面,它都会让任何用户知道任务正在运行以及何时完成。

我查看了 IHostedServices 和 BackgroundService 函数,但找不到任何与我正在尝试做的相匹配的示例。我看过一篇关于 MVC5 的文章,它使用了 SignalR 和 Knockout(我不太熟悉),但它没有使用 Core 2+ 或更新的服务功能。

任何人都可以给我指出一个很好的 .Net Core > 2.0 示例吗?

提前致谢。

最佳答案

对于长时间运行的进程,您可以使用广泛使用的 Hangfire

文档中描述了通过 SignalR 进行进度跟踪:http://docs.hangfire.io/en/latest/background-processing/tracking-progress.html

兼容.Net Core 2.1。

关于c# - .Net Core 2.1 长任务上报进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51481356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com