.net - .Net 5 在队列中运行导入作业并让用户知道导入何时完成
问题描述
我有一个使用 .Net 5 服务层的 Blazor 应用程序,允许用户上传 excel 或 csv 文件以允许批量添加数据。好吧,我已经布置了所有图层,并且导入工作如下 -
- 上传的文件转换为内存流,然后使用 NPOI nuget 包转换为工作簿
- 之后,将修剪并将所有内容转换为大写的列添加到数据表中(仅提取列标题名称的字母和数字)
- 然后验证列以确保用户确实上传了正确的文件
- 之后,读取每一行并将其添加到数据表中
- 然后将其转换为 json 字符串,随后将其转换回 json 对象
- 然后检查这些值并将其转换为所需的数据类型,同时将其映射到存储在数据库中的对象(在某些情况下,我有一个匹配算法,试图将入站数据映射到数据库中的用户)
- 之后,文件被上传到 azure blob 存储
- 然后将先前映射的数据与 blob id 一起添加到 db
正如您所看到的,这是一个非常冗长的过程,并且基于上传文件上的行数需要时间来实际完成导入过程的不同部分。
那么我的问题是我应该如何在后台运行这个过程并让用户知道上传的状态,同时允许他们在过程完成时使用应用程序。我看过几个关于这个的视频,但没有找到确切的解决方法。任何帮助将不胜感激。
解决方案
推荐阅读
- arrays - 控制台返回整个数组,但当我想要它的第一个元素时返回“未定义”
- windows - 在windows中如何创建一个快捷方式使系统关机或休眠?
- arrays - 在字典中组合(所有单独的)数组元素
- javascript - 类型ORM关系和表达
- python-3.x - 在 Python 错误中通过 Instagram Graph api 发表评论
- java - What should I set JAVA_HOME to using multiple jdks?
- mysql - 通过不按我的意愿工作来续集聚合组
- javascript - Javascript 待办事项列表应用程序。我无法删除最后剩余的 li 并清除所有按钮不起作用,只有本地存储被删除
- clickhouse - clickhouse create table 异常:在查询中发现聚合函数 minState(origin_user) 在错误的位置
- python - Pandas df如何解析列值以使用正则表达式将字符串提取为int