Fiware Orion CB 订阅节流

Fiware Orion CB subscriptions throttling

我创建了这个订阅:

curl localhost:1026/v2/subscriptions -s -S -H 'Accept: application/json' | python -mjson.tool
[
{
    "description": "Update room temperature",
    "expires": "2020-04-05T14:00:00.00Z",
    "id": "5b104ace028f2284c5517f51",
    "notification": {
        "attrs": [
            "temperature"
        ],
        "attrsFormat": "normalized",
        "http": {
            "url": "http://MyUrl/getSub"
        },
        "lastNotification": "2018-05-31T19:19:42.00Z",
        "metadata": [
            "5b019ae132232812eccb6d50",
            "device",
            "16",
            "Auto",
            "30",
            "greater"
        ],
        "timesSent": 1
    },
    "status": "active",
    "subject": {
        "condition": {
            "attrs": [
                "temperature"
            ]
        },
        "entities": [
            {
                "id": "5aff0eef23102126a4aeeea2",
                "type": "room"
            }
        ]
    },
    "throttling": 60
}

即使我已将节流设置为 60(如果我理解正确,则为 1 分钟),当我更改温度值时,即使更改发生在一分钟标记之前,orion 也会向我发送通知(例如,我每 10 秒更改一次温度值)。是否应该仅在 60 秒后发生更改时才发送通知,或者我理解有误?

您所描述的似乎是正确的行为。我的意思是,如果订阅有 60 秒的限制,您应该不会收到任何新的通知,直到从上一个通知过去 60 秒。

可能的原因:

  • 您有另一个正在触发的订阅。但我知道情况并非如此,因为这样的订阅应该显示在 GET /v2/subscriptions 结果中。
  • Orion 中存在导致节流被忽略的错误。在这种情况下,使用使用 NGSIv1(使用 POST /v1/subscribeContext)创建的订阅进行相同的测试以了解错误的影响范围会很有趣。