FIWARE的订阅不通知

FIWARE's subscription do not notify

我有多个不同实体的订阅,并且在某个随机时间停止通知其中一个订阅。

这是因为以后设置了lastNotification属性。这是一个例子:

 curl 'http://localhost:1026/v2/subscriptions/xxxxxxxxxxxxxxx'

{
    "id": "xxxxxxxxxxxxxxx",
    ...
    "status": "active",
    ...
    "notification": {
        "timesSent": 1316413,
        "lastNotification": "2021-01-20T18:33:39.000Z",
        ...
        "lastFailure": "2021-01-18T12:11:26.000Z",
        "lastFailureReason": "Timeout was reached",
        "lastSuccess": "2021-01-20T17:12:09.000Z",
        "lastSuccessCode": 204
    }
}

在这个例子中,lastNotification是提前的。直到2021-01-20T18:33:39.000Z才再次通知订阅。

我试图修改 mongo 数据库中的 lastNotification,但这并没有改变它。看起来值 2021-01-20T18:33:39.000Z 被缓存了。

字段 lastFailureReason 指定与该订阅关联的最后一次通知失败的原因。 diagnose notification reception problems section in the documentation 解释了 “已达到超时” 的可能原因。如果您的网络连接不稳定,让这个随机失败是有意义的。

关于未来的时间戳(无论它发生在 lastNotificationlastFailure 还是 lastSuccess)非常奇怪,可能与 Orion Context Broker 操作无关。 Orion 从 运行ning 系统的内部时钟获取时间戳,因此您的系统时钟可能会在将来设置。

除非您 运行 使用 -noCache 的 Orion Context Broker(通常 is not recommended),否则订阅会被缓存。因此,如果您在数据库中“破解”它们,您将在下次缓存刷新之前看不到效果(刷新定期发生,由 -subCacheIval 参数定义)。