Маршрутизатор выбора Mulesoft - никаких действий не требуется на пути по умолчанию - есть ли компонент-заполнитель Mulesoft, который не тратит ресурсы? - PullRequest
1 голос
/ 07 ноября 2019

У меня есть подпоток, который обеспечивает токен доступа OAuth. Значение токена сохраняется в хранилище объектов, срок действия которого истекает незадолго до истечения времени ожидания. По истечении срока действия новое значение токена извлекается и помещается в хранилище объектов.

Choice router with useless placeholder

Я не нашел простых примеров методологии Mule v3обновить токен, который использует хранилище объектов, поэтому вот код, если кому-то интересно.

<sub-flow name="get_token">
   <objectstore:retrieve config-ref="TokenStore" key="StatusToken" defaultValue-ref="#['expired']" targetProperty="StatusToken" doc:name="Get token from Object Store"/>
   <choice doc:name="Expired?">
      <when expression="#[flowVars.StatusToken == 'expired']">
         <set-payload value="#[{'grant_type':'refresh_token', 'refresh_token':'${RefreshToken}'}]" doc:name="Set payload for token refresh"/>
         <http:request config-ref="HTTP-Token" path="${tokenPath}" method="POST" doc:name="Get new token">
            <http:request-builder>
               <http:header headerName="Content-Type" value="application/x-www-form-urlencoded"/>
            </http:request-builder>
         </http:request>
            <dw:transform-message doc:name="Write token to flowVar">
               <dw:set-variable variableName="StatusToken">
                  <![CDATA[
                     %dw 1.0
                     %output application/java
                     ---
                     payload.access_token
                  ]]>
               </dw:set-variable>
            </dw:transform-message>
         <objectstore:store config-ref="TokenStore" key="StatusToken" value-ref="#[flowVars.StatusToken]" doc:name="Put token to Object Store"/>
      </when>
      <otherwise>
         <set-variable variableName="Useless" value="#['']" doc:name="Useless placeholder"/>
      </otherwise>
   </choice>
</sub-flow>

Поток работает хорошо, как задумано, но вот мой вопрос. Маршрутизатор выбора проверяет, не истек ли токен. В противном случае никаких действий не требуется, и поток выдает ошибку, если путь по умолчанию пуст. Какой самый простой элемент для минимизации обработки и использования ресурсов в пути по умолчанию?

1 Ответ

0 голосов
/ 08 ноября 2019

После комментария Райана Картера это можно пометить как дубликат, но не совсем. Вот ссылка:

Как мне реализовать IF в mulesoft

Резюме

Mule 4:

Тег <otherwise>не требуется

Mule 3:

Необходим компонент. Я склонен использовать Logger с уровнем TRACE, так как log4j2 умный и не подставляет параметры, если уровень установлен на DEBUG и выше. Однако, если вам действительно нужно отладить поток, было бы хорошо видеть, что он был правильно маршрутизирован.

...