在 .NET Framework Web 应用程序中生成大型 .csv 文件100 万行以上

问题描述

我们在 Azure 中部署了一个 .NET Framework (4.8) Web 应用程序,它具有用户可以将原始数据导出到 .csv 文件功能。数据集很大,可能有数百万行,大约有 20 列。

以前,导出功能使用 OpenXML SDK 生成 .xslx 文件,但该过程太长(可能需要长达 2 小时)。此外,通常用户点击导出然后关闭浏览器,有时应用程序域会被应用程序池生命周期回收,这导致文件生成永远不会随着进程被终止而完成。

我们将文件格式更改为 .csv,现在处理一百万行大约需要 15 分钟。减少执行时间 = 减少应用域在文件生成结束前被回收的机会。

但是,我们仍然不确定该文件是否会一直生成,并且我们担心将来(因为 DB 不断增长)该进程很容易再次被杀死。

我们目前正在考虑另一种方法,我一直在研究 Azure Web 作业、Windows 服务等,但我没有找到任何可以满足我们需求的方法:根据用户的请求从 Web 界面生成一个文件和然后通过电子邮件发送下载链接。这个过程需要很快,我们需要确保它总是能完成执行。

我想知道你们中是否有人对如何解决这个问题有任何想法。

我们想知道如何从 Web 应用程序中提取文件生成,以及如何根据用户请求触发它(这意味着我们需要将参数传递给该文件生成)。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)