Mule ESB Как реализовать переменную счетчика для подсчета количества вызовов потока

Я задаюсь вопросом, как реализовать счетчик, который будет увеличиваться на 1 шаг при вызове потока. Например: у меня есть поток с именем: http://localhost:8080/doSomething и счетчик переменных. Переменная счетчика увеличится на 1, когда я нажму Enter в службе doSomething.

Большое спасибо


person English learner    schedule 24.04.2018    source источник


Ответы (5)


Если вам нужно хранить данные времени выполнения, доступные во всем приложении, вы можете хранить данные как объекты в реестре. Вот пример

Чтобы установить значение

<scripting:component doc:name="Groovy">
             <scripting:script engine="Groovy">                
                <![CDATA[muleContext.getRegistry().registerObject("Count", new Integer(14))]]>
              </scripting:script>
</scripting:component>

Чтобы прочитать значение

<logger message="Count #[app.registry.get('Count')]" level="INFO" doc:name="Logger"/>
person user3366906    schedule 30.04.2018

Инициализируйте переменную целочисленным значением 1 в реестре приложений mule в начале вашего потока, как показано ниже:

<expression-component doc:name="Expression"><![CDATA[#[app.registry.put('counter',1)]]]></expression-component>

Чтобы увеличить значение, используйте:

<expression-component doc:name="Expression"><![CDATA[#[app.registry.put('counter',app.registry['counter']+1)]]]></expression-component>

Чтобы получить окончательное значение флага счетчика, используйте выражение:

#[app.registry.get('counter')]
person Subham Pal    schedule 17.07.2018

Вам нужно постоянное хранилище. Переменные в Mule не живут во время вызовов. У Mule есть концепция хранилищ объектов: https://docs.mulesoft.com/mule-user-guide/v/3.7/mule-object-stores

Если вы являетесь клиентом Mule Enterprise, аналитика может быть включена в вашу подписку.

person Clinton Murdoch    schedule 24.04.2018

Если вы просто пытаетесь собрать статистику, я предлагаю вам рассмотреть возможность использования MuleSoft Insight. . Вы сможете настроить Пользовательские бизнес-события в своих потоках и отслеживать важную информацию. Наконец, вы можете использовать Insight Dashboard в CloudHub, чтобы получать соответствующую статистику, применяя различные фильтры.

person Sagar Chaudhari    schedule 07.05.2018

У вас может быть хранилище объектов в вашем потоке, которое может хранить ваш счетчик (количество обращений к вашему потоку) либо в памяти, либо в постоянном хранилище. Затем вы можете получить счетчик и увеличить его при последующем попадании в ваш поток. https://docs.mulesoft.com/mule-user-guide/v/3.9/object-store-module-reference

person pawan pandey    schedule 08.05.2018