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

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

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

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"/>

Инициализируйте переменную с целочисленным значением 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')]

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

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

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

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

Другие вопросы по тегам