通过 Spring 集成从分页 REST 服务读取和下载

2024-04-17

目前我正在开发一个 Spring Integration 应用程序,该应用程序具有以下场景:

  1. An int-http:outbound-gateway从 REST-Services 读取分页元素列表:about in
  2. 每个页面内容被分割并存储在一个文件夹中,以便稍后由 Spring 批处理作业处理。

我对 spring-integration 很陌生,我不知道是否可以使用“int-http:outbound-gateway”创建一种循环来读取所有页面,直到最后一页。

我们讨论的是分成 2651 个页面的 66254 个元素。我正在寻找的是一种读取和下载所有页面并收集数据而不会出现任何内存问题的最佳实践。

任何建议将不胜感激

Thanks


是的,这是可能的,尽管有点棘手。

假设您的 REST 服务需要page作为请求参数,因此,您想从页面 #1 发出请求并循环(增量pageparam) 直到服务返回空结果。

因此,您可能有 REST 服务的配置,例如:

<int-http:outbound-gateway url="http://service/elements?page={page}">
    <int-http:uri-variable name="page" expression="headers['page']"/>
</int-http:outbound-gateway>

注意这一点<int-http:uri-variable>定义。从一开始你就必须将消息发送到此<int-http:outbound-gateway>page标头作为1.

您应该将此网关的回复发送至类似的地址<recipient-list-router>, or <publish-subscribe-channel>,其中订阅者之一仍然是您的splitterto 将项目存储到文件夹中。

另一位订阅者有点聪明。它开始于<filter>检查是否payload(REST 调用的结果)为空,这意味着我们已经完成,并且服务上没有更多页面可供检索。否则你使用<header-enricher>增加和替换pageheader 并将结果发送到我们的第一个<int-http:outbound-gateway>.

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

通过 Spring 集成从分页 REST 服务读取和下载 的相关文章

随机推荐

  • WooCommerce:如何在价格和促销价格之前添加文本?

    我已成功地让文本显示在价格之前和促销价格之前 但文本被视为价格的一部分 而不是与其分开 Placing ins before content Betty s price color 000 font size 14px 在我的自定义 CSS
  • Flutter 嵌套行 MainAxisAlignment

    我想做这个 但这是我实际得到的 这是我的代码 Row itemTransaction BuildContext context Transaction transaction This is the function that will b
  • 如何配置 android 测试目录?

    Android gradle 构建强制我的 AndroidTests 位于 src androidTests 中 如何将其更改为我选择的另一个目录 这是一些背景 我正在从 eclipse 迁移一个项目 根据构建文档 当我将其添加到我的 gr
  • 重新启动 Vaadin 应用程序时抛出 java.io.NotSerializedException

    当我重新启动 Tomcat 时 出现以下错误 2014 10 01 15 49 47 055 WARN com vaadin event ListenerMethod localhost startStop 2 Error in seria
  • 如何判断一个对象是否是 Mockito 模拟对象?

    是否可以在代码中判断给定对象是否是 Mockito 模拟对象 我想这样做的原因是在使用模拟时返回不同的错误消息 这将用于向其他开发人员建议他们应该使用预先准备的模拟 该模拟已经设置为以有用的方式应答呼叫 而不是自己创建模拟 目前我拥有的最好
  • 《How To Make a Tile-Based Game with Cocos2D 2.X》用cocos2d V3制作本教程

    我有一个小问题 在本教程中如何使用 Cocos2D 2 X 制作基于图块的游戏 http www raywenderlich com 29458 how to make a tile based game with cocos2d 2 x使
  • 当活动处于后台或不在后台时,Firebase 通知不起作用

    我的编码与 firebase 示例代码提供的相同 当 Activity 处于前台状态或打开时 它可以正常工作 但是 当活动关闭或处于后台状态时 它就无法正常工作 问题是这样的 不显示应用程序的应用程序图标 默认情况下以应用程序名称作为通知标
  • 为什么基元的包装类没有 setter?

    包装类 如 Integer Double 等 没有为其内部原始值设置 setter 的原因是什么 我问这个问题是因为这种功能可以简化微积分 并使 Java 语言更加灵活 让我举一些例子 1 我们看下面的例子 Integer x new In
  • 通过adb获取sdcard目录

    我正在制作一个应用程序 它通过 adb 从设备 SD 卡中提取文件 由 Android 应用程序保存 问题是不同的设备 有不同的SD卡目录 i e sdcard SD卡 external sd 首先我发明了以下解决方案 运行 adb she
  • 如何解决“安装包:当前环境没有打开的解决方案。”

    我有一个包含 1 个项目的解决方案 打开包管理器控制台 运行 Install Package MSBuildTasks 但它给了我一个错误 Install Package The current environment doesn t ha
  • 使用 getActivity() 进行强制转换安全吗?

    我正在编写一个有父级的应用程序Activity和几个孩子Fragments 我正在尝试让片段与父活动进行通信 我知道有几种方法可以做到这一点 包括创建一个接口并在父活动中实现它 不过 我对这个方法很感兴趣 ParentActivity ac
  • 禁用 sympy 中的自动简化

    我想禁用 sympy 中的自动简化 例如求解方程x y x我想要得到x x代替1 import sympy from sympy abc import x y z expr x y x sympy solve expr y gt 1 i w
  • 为什么 `head` 需要 `()` 而 `shape` 不需要?

    在下面的代码中 我将 csv 文件导入到 Python 的 pandas 库中并显示前 5 行 并查询 pandas 数据框的 形状 import pandas as pd data pd read csv my file csv data
  • 链接对象文件时出现“未定义的引用”错误[重复]

    这个问题在这里已经有答案了 我意识到这个问题已经通过多种方式提出 包括这个非常全面的答案 https stackoverflow com questions 12573816 what is an undefined reference u
  • DropBox Mac 客户端如何工作?

    我一直在看DropBox http www getdropbox com install os macMac 客户端和我目前正在研究为不同的服务实现类似的界面 他们究竟是如何与这样的取景器交互的 我非常怀疑文件夹中表示的这些对象是每次加载时
  • 颤振卡顶部半径被图像覆盖

    当我向卡片添加图像时 卡片顶部的半径被覆盖 我该如何解决 当我向卡片添加图像时 卡片顶部的半径被覆盖 我该如何解决 class App extends StatelessWidget override Widget build BuildC
  • Razor 语法和 JavaScript

    作为测试 我将我们编写的概念验证应用程序从 Web 表单转换为 Razor 以便我们可以对其进行评估 到目前为止 我遇到了一个让我头疼的问题 生成客户端 Javascript 网络表格
  • PHP oci8 无法通过 pecl 安装:“致命错误:oci8_dtrace_gen.h”

    我正在尝试将我的 fedora 25 网络服务器 php 连接到 Oracle 数据库 为此 我需要 pecl 安装 oci8 但是我收到这个错误 bin sh var tmp pear build roottqYEC6 oci8 2 1
  • Erlang - 导入 GPG 公钥

    我正在尝试在 Erlang 中做一些与公钥相关的事情 它们要求我跟踪公钥 根据这一页 http www erlang org doc apps public key using public key html id61611 我应该能够通过
  • 通过 Spring 集成从分页 REST 服务读取和下载

    目前我正在开发一个 Spring Integration 应用程序 该应用程序具有以下场景 An int http outbound gateway从 REST Services 读取分页元素列表 about in 每个页面内容被分割并存储