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


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

前提条件

您创建了 OData 连接。

流程

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

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

      您可以指定 Entity Key PredicateQuery Options。如果您这样做,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')

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

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

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

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

      例如,假设轮询间隔( 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 会提示您选择完成连接。

在执行期间,连接返回的内容取决于您在 Entity Key PredicateQuery Options 字段中指定的内容。OData 连接可以返回:

  • 实体或实体属性集合

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

  • 实体或实体属性

    例如,这可能是其 UserName 属性为 Bob Person 实体,也可能是 UserName 为ob 实体的 Age 属性。连接返回消息中的 entity 或 entity 属性,该属性传递给流中的下一步。

后续步骤

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

在 OData 连接后,向流中添加数据映射程序步骤。准确在流中的什么位置取决于您要进行的流。例如,在 OData 连接后,您可以添加基本过滤器步骤,然后添加数据映射程序步骤。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.