19.2. 在轮询从 OData 服务返回数据时触发集成


要在从 OData 服务获取数据时触发集成的执行,请在其启动连接时添加 OData 连接到简单的集成。当集成运行时,OData 连接会按您指定的间隔轮询服务。当连接发现满足连接配置的数据时,连接会将数据传递给集成中的下一步。

前提条件

您创建了 OData 连接。

流程

  1. 在左侧的 Fuse Online 面板中,单击 Integrations
  2. Create Integration
  3. Choose a connection 页面中,点您要用来开始集成的 OData 连接。
  4. 在 Choose a action 页面中,选择 Read 操作。
  5. 配置 Read 操作:

    1. Resource Collection 字段中,选择要查询的 OData 资源的名称。Fuse Online 从 OData 服务获取数据,以提供可用资源集合的列表。
    2. 实体密钥 Predicate 字段中,若要获取特定实体,通过指定密钥 predicate 来识别您想要的实体。例如,指定诸如 UserName='Bob'Categories(1) 的内容。要获得多个实体,请将此字段留空。
    3. Query Options 字段中输入您要应用到资源的查询。使用 OData 语法。例如,$filter=startswith(name, 'N') 为资源中有一个 名称字段N 开头。

      您可以指定 实体键假定和查询 选项 。如果您这样做,OData 服务会获取指定的实体,并将查询应用到该实体。例如,假设您将 Entity Key Predicate 设置为 UserName='russellwhyte'/Emails,并将 Query Options 设置为 $filter=contains($it,'example')。连接会创建一个请求,请求类似如下:

      https://services.odata.org/TripPinRESTierService/People(UserName='russellwhyte')/Emails?$filter=contains($it, 'example')
      Copy to Clipboard Toggle word wrap

      该服务会返回包含域 示例 的所有电子邮件地址。

    4. 选择 Filter Old Results 复选框,以只获取特定消息一次。
    5. 如果您希望连接返回单个消息而不是消息集合,请选择 Split Results 复选框。

      Fuse Online 还提供了离散的分割和聚合步骤,您可将其添加到一个流中。如果要在一个或多个步骤中处理各个消息,然后将消息聚合到一个集合中,请不要选择 Split Results 复选框。相反,复选框留空,然后在此连接后向流添加一个拆分步骤。如果您希望流程中的聚合步骤,则需要分割步骤。

    6. Interval Before Poling Starts 字段中,接受默认值 1 秒,或者输入在连接开始轮询 OData 服务前希望放弃的时长。
    7. Delay 字段中,接受默认值 30 秒,或者输入您要连接轮询 OData 服务的时间间隔。
    8. Backoff Idle Threshold 字段中,接受默认值 1 或输入一个整数,表示可以返回任何数据的连续轮询数。轮询次数后,连接会增加后续轮询之间的间隔。连接通过 Backoff Multiplier 值乘以 Delay 值来确定轮询间隔的新长度。

      例如,假设轮询间隔( Delay 值)是默认值 30 秒,则 Backoff Idle Threshold 被设置为 5,Backoff Multiplier 被设置为 12。5 连续轮询返回任何数据后,连接会在重新轮询前等待 360 秒(30 x 12)。连接会每 360 秒轮询一次,直到轮询返回数据。轮询返回数据后,连接每 30 秒恢复一次轮询。

    9. Backoff Multiplier 字段中,接受默认值 1 或输入整数,如果达到 Backoff Idle Threshold 的值,则代表增加轮询间隔的倍数。

      如果您接受 Backoff Multiplier 的默认 1,那么无论连续的轮询返回任何结果,连接会以指定间隔继续轮询。

      Backoff Idle ThresholdBackoff Multiplier 指定的值有助于减少 CPU 开销,因为连接可以在静默期间自动轮询频率。

  6. 点击 Next

结果

现在,集成具有启动连接,Fuse Online 正在提示您选择完成连接。

在执行过程中,返回的连接将取决于您在 实体键预先和查询 选项字段中指定 的内容。OData 连接可以返回:

  • 实体或实体属性集合

    例如,这可能是资源中的所有个人实体,也可能是所有 Person 实体的所有 期限 属性。这个连接会返回一条消息中的集合。Fuse Online 对集合一次执行一次流程中的每个步骤。但是,当您配置 Read 操作时,如果您选择 Split Results,则连接会在其自己的消息中返回每个实体或每个属性。Fuse Online 在每个消息执行一次每个步骤。

  • 实体或实体属性

    例如,这可能是其 UserName 属性为 Bob 的个人实体,也可能是其 UserNameBob Person 实体的 Age 属性。这个连接会返回流中向下一步传递的消息中的实体或实体属性。

后续步骤

添加集成完成连接以及您要包含在集成中的任何其他连接。当集成包含需要的所有连接时,如果 OData 连接返回集合,请考虑是否需要在 OData 连接后添加分割步骤。集成通常需要将 OData 连接返回的数据映射到流中后续连接可以使用的字段。有时,您可以映射集合,但更经常需要分割集合来映射到目标字段。

在 OData 连接后,在流中添加数据映射步骤。流中的具体位置取决于您希望流执行的操作。例如,在 OData 连接后,可能会添加一个基本过滤器步骤,然后添加一个数据映射程序步骤。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat