ASP.Net MVC 长时间运行进程

2023-12-02

我需要为不同的财务周期生成报告屏幕。由于这是一个相当大的数据集,包含很多规则,因此该过程可能需要很长时间才能运行(某些报告返回需要一个多小时)。

在 MVC 中处理这种情况的最佳方法是什么?

我担心:

  • 屏幕锁定
  • 表现
  • 可用性
  • 请求超时

这些确实是合理的担忧。

正如一些评论者已经指出的那样:如果报告不依赖于用户的输入,那么您可能需要提前生成报告,例如每晚生成报告。

另一方面,如果报告确实依赖于用户的输入,您可以通过多种方式规避您的担忧,但您至少应该将操作分成多个步骤:

  1. 来自浏览器的请求启动生成报告的过程。您可以启动一个新线程并告诉它生成报告,或者您可以将“创建报告”消息放入队列中并让服务使用消息并生成报告。无论您做什么,请确保第一个请求快速完成。它应该返回某种标识刚刚开始的任务的标识符。这时,你可以通知用户系统正在处理请求。
  2. 使用 Ajax 重复轮询服务器以使用给定标识符完成报告。优选地,生成报告的进程应报告其进度,并且该信息应通过 Ajax 轮询提供给用户。如果你想变得更奇特,你可以使用 SignalR 来通知浏览器进度。
  3. 报告准备就绪后,将链接返回给用户,他/她可以在其中访问报告。

根据您实现此操作的方式,用户可能能够关闭浏览器,喝一口咖啡,然后返回到已完成的报告。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net MVC 长时间运行进程 的相关文章

  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 实体框架 - 选择特定列并返回强类型而不丢失强制类型转换

    我正在尝试做类似的事情这个帖子 https stackoverflow com questions 1094931 linq to sql how to select specific columns and return strongly
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • Azure Data Lake 的 Spark 谓词下推、过滤和分区修剪

    我一直在阅读有关 Spark 谓词下推和分区修剪的内容 以了解读取的数据量 我有以下与此相关的疑问 假设我有一个包含列的数据集 年份 Int 学校名称 String 学生 ID Int 主题已注册 String 其中存储在磁盘上的数据按年份
  • 在 Android 中使用 Recyclerview(里面的整个项目)中的 iText 创建 PDF 文件?

    您好 我正在尝试使用该库从 Recyclerview 创建 PDF 输出文件iText 经过几个小时的努力 我能够从 recyclerview 创建 PDF 以下是我用来创建 PDF 的类 主类的代码 private void getPri
  • 如何检索 Facebook 好友列表并保存以供解析?

    我正在制作一个利用用户 Facebook 好友列表的应用程序 我的解析后端有一个名为的数组类型列fbFriendsList 环顾四周后 到目前为止我有这个 my permission array NSArray permissionsArr
  • 使用 pyudev 仅查找磁盘驱动器

    我希望使用 udev 枚举计算机上的所有硬盘 特别是 pyudev 来枚举所有内容 import pyudev context pyudev Context for device in context list devices subsys
  • sbt 是否有类似于 gradle 的 processResources 任务并支持 ReplaceTokens 的功能?

    我们正在从 Java Gradle 堆栈转向 Scala SBT 我们的 gradle 构建利用名为 processResources 的任务和一些名为 ReplaceTokens 的 Ant 过滤器来动态替换签入的 properties
  • 使用 printf 函数汇编无限循环[重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这段代码会进入无限循环 我认为这与 printf 函数有关 q1 asciz Hello World n global main main movq rsp rbp movq 3 rcx jmp
  • 带有 Java 外键的 MongoDb

    我需要使用 Java 在 MongoDB 中保存两个集合 一个集合在哪里部门其他集合是Employee 如果一个部门可以有许多员工 我想保存一个集合 就像员工唯一 ID 必须映射到我的部门员工列表中一样 Example id ObjectI
  • Dplyr Mutate_each 用于成对的列集

    有没有办法使用 dplyr mutate each 实现以下转换 data frame x1 1 5 x2 6 10 y1 rnorm 5 y2 rnorm 5 gt mutate diff1 x1 y1 diff2 x2 y2 x1 x2
  • HSQL 创建过程语法似乎与文档不匹配

    我使用 HSQL 作为内存测试数据库来运行集成测试 在生产中 我有一个 oracle 10g 数据库 这个想法是运行我用来在 oracle 中创建数据库的数据库创建脚本 以在 hsql 中创建相同的数据库以进行集成测试 我遇到了有关语法差异
  • 边缘检测后获取边缘坐标(Canny)

    我使用 OpenCV 的时间相当短 并对图像执行了 Canny 边缘检测 之后还执行了膨胀以进一步将对象 在我的例子中是一个正方形 与背景分开 我现在的问题是使用一种算法来识别二维中的可抓取区域 该算法要求我处理这些边缘中的点的坐标 有没有
  • 什么是纯 SVG,什么是 SMIL?

    Context 我正在制作 SVG 信息图 我希望通过动画让文档变得栩栩如生 尤其是动画链接动画 我已经熟悉 SVG 但最近才开始学习 SVG 动画 由于 SMIL 已被弃用 我正在尝试用纯 SVG 制作动画 看看这篇文章 尤其是Handy
  • HTML canvas JavaScript 库和框架的当前技术水平如何? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我目前正在研究在新的 HTML 5 应用程序中使用画布的选项 并且想知道 HTML 画布 JavaScript 库和框架的当前技术水平是什么 特别是 是否有框架支持游戏开发所需的东西 复杂
  • Swift:如何单击按钮打开新窗口?

    我是这种编程语言的新手 我想创建一个应用程序 当我单击按钮时打开一个包含一些信息的窗口 但我不知道该怎么做 我不使用故事板 因为我读到对于专业编程来说这些不起作用 我不想要 iOS 我想要 OS X 向大家问好 那很简单 您可以执行以下操作
  • 将 spring-batch-admin 集成到现有的 spring boot 后无法导入属性

    我曾经做过一个使用 spring batch 和 spring boot 的项目 我遵循了如何集成它的确切规则 1 删 除所有 EnableBatchProcessing 2 添加ServletConfiguration和WebappCon
  • 在 Razor 视图中根据需要创建字段

    我想在剃刀视图中根据需要创建一个文本框字段 我无法使用验证属性 Required 因为字段名称是动态生成的 我检查了这个答案这设置了data val required字段到true使用 JavaScript 有没有其他方法可以做到这一点 因
  • 突出显示 matplotlib 图中的任意点

    我是 python 和 matplotlib 的新手 我试图突出显示 matplotlib 中现有绘图中符合特定标准的几个点 初始绘图的代码如下 pl plot t y pl title Damped Sine Wave with 1f H
  • IntelliJ IDEA + Gradle - 如何记录从 IDE 运行的长时间运行的 Gradle 任务?

    IntelliJ IDEA 有时需要很长时间来执行 Gradle 刷新任务或运行 Gradle 任务 它会旋转很长一段时间 让你想知道它到底旋转了多远 或者它是否在做任何事情或冻结了 例如 这已经运行了很长时间 但我没有办法看到发生了什么
  • Java中的字符串表示

    字符串在 Java 中表示为对象 因此 一个对象包含存储在实例变量对象内 对象还包含对该对象进行操作的代码体 这些代码体称为methods 包含相同类型值和相同方法的对象被分组为类 类可以被视为这些对象的类型定义 那么 Java中的Stri
  • 检查或查找值是否存在于另一列中

    这应该很容易 但我就是不明白出了什么问题了 我有 3 列 第一列和第三列有数字 我希望第二列显示第 1 列中的数字是否存在于第 3 列中 我在网上找到了一个代码 IF ISERROR VLOOKUP A7 C 2 C 3400 1 FALS
  • ASP.Net MVC 长时间运行进程

    我需要为不同的财务周期生成报告屏幕 由于这是一个相当大的数据集 包含很多规则 因此该过程可能需要很长时间才能运行 某些报告返回需要一个多小时 在 MVC 中处理这种情况的最佳方法是什么 我担心 屏幕锁定 表现 可用性 请求超时 这些确实是合