【问题标题】:Subscriptions & request forwarding订阅和请求转发
【发布时间】:2015-09-11 08:35:55
【问题描述】:

我有两个关于 Orion 订阅的问题。

  1. 如果我们在 Orion 中使用提供程序应用程序 url 注册实体并为其创建订阅(例如每 15 分钟发送一次更新),如果 Orion 的本地数据库中没有数据会发生什么?它会查询数据提供者从指定的 url 获取数据,然后返回订阅更新,还是什么都不返回?

  2. 这与第一个有点相关。是否有一个选项可以在 Orion 的本地数据库中指定属性值的“最大持续时间”(例如,如果一个属性在 1 小时内没有更新,则删除它的值)? 我们想到了以下示例:为实体设置订阅,每 15 分钟向我们的服务器发送更新。从传感器到 Orion 的更新应每 5 分钟完成一次。现在,如果传感器无法正常工作并且它停止发送更新,我们将永远获取存储在 Orion DB 中的最后一个值,除非该属性有“max-duration”选项,如果它没有在指定的更改中删除该值时间段。 当订阅更新被触发时,如果 Orion 的本地数据库中没有该属性的值,它应该向提供者应用程序查询数据(Q1)。

【问题讨论】:

    标签: fiware fiware-orion


    【解决方案1】:

    关于 1,我猜你指的是 ONTIMEINTERVAL 订阅。目前在 Orion 0.23.0(将来可能会更改)由于这种订阅而发送的通知是从 Orion 实体数据库填充的,无需查询上下文提供程序。

    关于 2,没有这样的选项(持续时间适用于注册和订阅,但不适用于实体属性)。但是,在客户端实现起来很容易:您可以有一个名为X_last_update 的属性来存储X 属性的最后更新时间,并定期检查最后更新是两个旧的属性要删除。

    【讨论】:

    • NGSIv2(Orion 实现的 NGSI API 的市长改造)将包括查询比特定日期更早/更新的实体的机制(从而简化第 2 项提出的解决方案),但是Orion 0.23.0 尚不提供此类功能。
    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多