2 votes

Orion Context Broker - Les abonnements ne notifient que les 20 premières entités

En utilisant ce script :

#!/bin/bash

(curl http://orionip:1026/v1/subscribeContext -s -S --header 'Content-Type: application/json' \
 --header 'Accept: application/json' --header 'fiware-service: service' --header 'fiware-servicepath: /servicepath' \
 -d @- | python -mjson.tool) <<EOF
{
    "entities": [
        {
            "type": "Sensor",
            "isPattern": "true",
            "id": "Parquimetro:.*"
        }
    ],
    "attributes": [
        "recaudacion"
    ],
    "reference": "http://cometip:80/notify",
    "duration": "P4Y",
    "notifyConditions": [
        {
            "type": "ONCHANGE",
            "condValues": [
                "recaudacion", "numeroTiques"
            ]
        }
    ],
    "throttling": "PT24H"
}
EOF

Fait une souscription pour 170 entités (Parquimetro:1, Parquimetro:2, Parquimetro:3, ..., Parquimetro:170) pour notifier Comet afin de stocker des données historiques, mais seules les 20 premières entités ont été notifiées. J'ai besoin qu'il notifie toutes les entités (qui sont actuellement 170, pas 20).

Utiliser /v1/subscribeContext?limit=200 n'aide pas non plus.

Une idée ?

1voto

fgalan Points 6316

Il y a un problème ouvert sur le github d'Orion à ce sujet depuis un certain temps.

Actuellement, Orion se comporte de cette manière, mais il existe une solution de contournement : faire une requête (paginée) pour obtenir toutes les entités juste avant de faire l'abonnement. Il pourrait y avoir une certaine "condition de concurrence" si une mise à jour arrive entre la requête et l'abonnement, mais, en fonction du cas d'utilisation, cela peut suffire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X