javascript - 长时间运行的异步 API 方法

标签 javascript c# asp.net asp.net-mvc asp.net-web-api

我有一个 ASP.NET API 方法,当客户端调用此方法时,我将运行 4 个任务,每个任务都会调用一个 url 收集数据并将其作为对象列表返回。现在每个任务需要不同的时间来完成,所以我正在寻找的是这样的。

  • javascript AJAX 调用我的 API 方法
  • API 方法运行 4 个任务并等待任何完成的任务并返回数据
  • ajax再次回调API并查看哪些任务完成并再次获取数据并将其显示在浏览器上
<小时/>

现在我的解决方案是将任务返回的数据保存在内存数据库行 couchbase 中,然后让浏览器上的计时器调用 API 来检查是否添加了任何新数据,然后将其获取到所有数据任务已完成。

我的问题是。是否有其他解决方案。我不想使用 asp.net signalr

为了在这里清楚地表达我的想法

  • 客户端调用API方法
  • API 方法将要挂起的任务列表排队
  • 每个作业都会调用另一个 API 获取数据,对其进行处理并将其记录到内存数据库中,我将使用 couchbase
  • 当 My API 方法完成记录作业时,它会向客户端返回一个 key
  • 客户端可以使用此 key 调用另一个 API 方法,该方法为他返回最近的数据

这个解决方案是针对这个问题的

  • 我有一个 API 方法,可以使用多个酒店提供商搜索酒店
  • 每个提供商都会返回数据,我稍后需要这些数据来处理这些数据并将其返回给客户端。
  • 因为每个提供商都有自己的处理时间。有些提供商在 5 秒后给我回复,而其他一些提供商则在 30 秒后给我回复,有些甚至更长。
  • 我不希望客户端等待所有提供程序完成,而是希望客户端尽快获得结果并将其显示在浏览器上,然后我可以每次去更新 UI 并检查是否有新的提供商已完成向我返回数据

最佳答案

使用 signalR 进行推送通知。数据准备好后,只需向客户端发送数据已准备就绪的推送通知。

关于javascript - 长时间运行的异步 API 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38126853/

相关文章:

javascript - 将值传递给 Controller

c# - 如何在 SELECT TOP 1 上维护 LINQ 延迟执行

c# - 通过 '&' ,从选定的选项值返回,在 url

javascript - 如何使用 javaScript 设置 ASP.net html 控件(标签)

javascript - 用于尝试返回 json 数据的 ionic Angular 闭合

javascript Date 对象转换本地时区

asp.net - 在 ASP.NET MVC 中处理 CSS 和图像

javascript - JQuery 可选函数

java - 需要帮助将 C# 加密方法转换为 Java

javascript - ASP.Net 模态页面代码未触发