Orion - шаблон подписки для отправки нескольких обновлений

Я использую Orion для отправки обновлений в Proton-CEP, когда происходит изменение объекта.

Однако у меня есть много обновлений таких объектов, происходящих каждые несколько секунд. Поэтому я отправляю эти обновления в Orion партиями, например:

{
    "contextElements": [
        {
            "type": "Queue",
            "isPattern": "false",
            "id": "Queue.routes_queue",
            "attributes": [
                {
                    "name": "volume",
                    "type": "integer",
                    "value": "3"
                }
            ]
        }, 
        {
            "type": "Queue",
            "isPattern": "false",
            "id": "Queue.optimizer_queue",
            "attributes": [
                {
                    "name": "volume",
                    "type": "integer",
                    "value": "4"
                }
            ]
        }
    ],
    "updateAction": "APPEND"
}

У меня есть подписка, которая должна отправлять эти события (при изменении громкости) в CEP для обработки.

{
    "entities": [
        {
            "type": "Queue",
            "isPattern": "true",
            "id": "Queue.*"
        }
    ],
    "attributes": [
        "volume"
    ],
    "reference": "http://<cep-host>:8080/ProtonOnWebServer/rest/events",
    "duration": "P1M",
    "notifyConditions": [
        {
            "type": "ONCHANGE",
            "condValues": [
                "volume"
            ]
        }
    ],
    "throttling": "PT1S"
}

CEP настроен на прослушивание этих событий и запись их в файл. К сожалению, записывается только первый элемент.

Я подтвердил, что это не проблема CEP, используя предоставленный сценарий сервера-аккумулятора. Я вижу только одно обновление:

POST http://localhost:1028/accumulate
Content-Length: 741
User-Agent: orion/0.24.0 libcurl/7.19.7
Host: localhost:1028
Accept: application/xml, application/json
Content-Type: application/xml

<notifyContextRequest>
  <subscriptionId>5645bb21abde60e23096acef</subscriptionId>
  <originator>localhost</originator>
  <contextResponseList>
    <contextElementResponse>
      <contextElement>
        <entityId type="Queue" isPattern="false">
          <id>Queue.routes_queue</id>
        </entityId>
        <contextAttributeList>
          <contextAttribute>
            <name>volume</name>
            <type>integer</type>
            <contextValue>4</contextValue>
          </contextAttribute>
        </contextAttributeList>
      </contextElement>
      <statusCode>
        <code>200</code>
        <reasonPhrase>OK</reasonPhrase>
      </statusCode>
    </contextElementResponse>
  </contextResponseList>
</notifyContextRequest>
=======================================

::1 - - [13/Nov/2015 10:29:05] "POST /accumulate HTTP/1.1" 200 -

Может ли Orion отправлять обновления для всех измененных элементов?


person Pedro    schedule 13.11.2015    source источник


Ответы (1)


Решение состоит в том, чтобы просто удалить дросселирование. Регулирование применяется ко всей подписке, а не только к одному объекту в совпавшем шаблоне.

person Pedro    schedule 13.11.2015