如何处理持久的 http 请求

2023-12-31

我有一个持久的http请求(后端有大量计算)。

目前,这一切都是同步的,而服务器计算机、浏览器看不到输出/结果。一段时间后,连接断开,浏览器中显示超时错误。

我想立即向浏览器返回一些信息,并让它等待结果。如何实现这一目标?

请注意,Java 后端是同步的。所以解决方案需要一些hack在 servlet/前端中可能需要 javascript 请求..?


您可能想使用 COMET 模式。它类似于 AJAX 模式,仅具有长期保存的 HTTP 请求来模拟 feed。看here http://en.wikipedia.org/wiki/Comet_%28programming%29以获得详细的解释。

基本上,您发出一个请求,服务器保存它,然后在有感兴趣的内容时回复。收到回复后,您立即发出另一个长期保留的请求。

这个时间顺序让人感觉像是在喂食。

在你的情况下,它可能会立即返回“是的,我正在处理它”,然后回复“仍在处理 10% 完成的家伙”,依此类推,直到你返回“完成”。

像 Node.js 这样的东西非常擅长实现这种功能。

不过,当您使用同步 Java 后端时,您可能需要某种指示来表明正在取得进展。可能是一个数据库。

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

如何处理持久的 http 请求 的相关文章

随机推荐

  • C# Random 不像 random 那样工作

    我有一个图 每个节点有 4 个子节点 我编写了一个算法来生成从开始节点到结束节点的随机路径 在每个节点 它选择一个随机的下一个节点 访问过的节点可以重新访问 代码如下 public List
  • Cuda 中未找到 HANDLE_ERROR 错误

    global void add int a int b int c c a b int main void int c int dev c HANDLE ERROR cudaMalloc void dev c sizeof int add
  • Sunspot / Solr / Rails:模型关联未在索引中更新

    我的应用程序中有一个 Fieldnote 模型 它通过名为 fieldnote activities 的表附加了 many activities 然后我这样定义一个可搜索索引 searchable auto index gt true au
  • 如何让 ASP.NET Web API(自托管)在 *仅* 本地主机上侦听?

    我正在按照这个例子here http www dotnetcurry com ShowArticle aspx ID 896用于自托管 ASP NET Web API 服务 但是 当在基地址中指定 localhost 作为主机时 它会被转换
  • 系列的第 n 项

    我们必须找到这个级数的第n项http oeis org A028859 http oeis org A028859 n 答案应该以 1000000007 为模 我已经编写了代码 但是当 n a 是一个巨大的数字时 时间限制就超出了 incl
  • 其他同步方法

    除了使用synchronized关键字之外 如何在java中同步方法 你可以使用java util concurrent locks封装 特别是Lock接口 Lock l l lock try access the resource pro
  • 在图像控制中以 5 秒时间间隔显示文件夹中的所有图像

    我有一个包含 1000 张图像的文件夹 图像名称的顺序为 ICON000 ICON001 直到 ICON 999 我需要它们以 5 秒的时间延迟按顺序显示在我的 WPF 图像控件中 我使用文件对话框来获取特定文件夹的路径和图像的相应前缀 图
  • JavaScript ES6 类可以与异步代码库一起使用吗?

    什么可以ES6 类 https developer mozilla org en US docs Web JavaScript Reference Classes作为一种组织模式 提供异步代码 下面是一个 ES7 async await 的
  • Bootstrap 导航栏边距

    我想让导航栏内容的左右边距变小 以便 品牌 最左侧的组件 在左侧显示得比默认值更多 右侧组件的情况也是如此 有人可以指出我要修改的相关较少变量吗 Thanks 对于基本布局 您想要的 CSS 选择器是 body gt navbar bran
  • PHP 在 foreach 中通过引用传递[重复]

    这个问题在这里已经有答案了 我有这个代码 a array zero one two three foreach a as v foreach a as v echo v PHP EOL 有人可以解释一下为什么输出是 零一二二 来自 zend
  • Android WebView 中的自定义视频播放器

    我研究了 Android 中的一些浏览器 当用户单击 Web 视图中的 html5 视频标记项时 他们可以使用自定义播放器播放视频 这个怎么做 更具体地说 当用户单击视频标签时 如何获取视频网址以及如何触发我的自定义播放器而不是 Andro
  • 如何在控制台应用程序中使用 TIdUDPServer?

    Indy UDP 服务器组件似乎依赖于 Windows 消息 因为我看到只有当鼠标光标移到包含服务器组件的表单上时才会出现新消息 我使用以下代码在运行时创建了该组件 private Private declarations Srv TIdU
  • SQL Server Compact Edition 是 SQLite 的明智替代品吗?

    除了 SQL Server Compact 中的文件大小限制和仅限 Windows 的使用之外 还有哪些区别 我找到了一个couple https stackoverflow com questions 2278104 sql ce sql
  • Windows 线程:_beginthread、_beginthreadex 与 CreateThread C++

    有什么更好的方式来启动一个线程 beginthread beginthreadx or CreateThread 我正在尝试确定什么是优点 缺点 beginthread beginthreadex and CreateThread 所有这些
  • 为什么 swagger 会引发不清楚的错误 - Django

    我有一个 django Rest 后端应用程序 我使用 swagger 来查看我的 api 并将其记录到 FE 这工作正常 但我做了一些更改 现在出现此错误 Internal Server Error Traceback most rece
  • 无法在 ubuntu 20.04 中安装 g++ 和 build-essentials

    即使在清洁后apt get clean它说有破损的包裹 sudo dpkg l grep r正如 1 中提到的 什么也不返回 sudo apt get install build essential Reading package list
  • MySQL配置不当原因:相对路径的不安全使用

    我正在使用 Django 当我运行时python manage py runserver我收到以下错误 ImproperlyConfigured Error loading MySQLdb module dlopen Library Pyt
  • 使用 Jasypt 和 PBKDF2WithHmacSHA1 密钥进行基于密码的 AES 加密

    我正在工作中实现加密机制 安全人员的要求如下 使用 PBKDF2WithHmacSHA512 秘密密码 256 位盐和最少 20000 次迭代创建 256 位密钥 盐应该使用 SecureRandom getInstance SHA1PRN
  • Java 接口是否可以定义为只有 Enum 可以扩展它?

    我想这样做并没有什么特别的原因 我只是想知道这是否可能 如果有帮助的话 这是一个可以使用它的虚构情况 想象一下一种类型Enum它用作只读数据源 这样每个值Enum包含不同的内容 这Enum实施Readable 现在 假设我们想要一个读取所有
  • 如何处理持久的 http 请求

    我有一个持久的http请求 后端有大量计算 目前 这一切都是同步的 而服务器计算机 浏览器看不到输出 结果 一段时间后 连接断开 浏览器中显示超时错误 我想立即向浏览器返回一些信息 并让它等待结果 如何实现这一目标 请注意 Java 后端是