Можно ли регистрировать время выполнения запроса для службы весеннего облачного шлюза - PullRequest
0 голосов
/ 27 мая 2020

У меня есть несколько запросов маршрутизации службы весеннего облачного шлюза к нескольким службам. Можно ли зафиксировать время выполнения запроса с помощью некоторой конфигурации?

Если нет, то каковы возможные способы получить то же самое?

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете использовать АОП. В Spring я использую 2 зависимости:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
    </dependency>

Определение pointcut и использование аннотации @Around. У метода есть аргумент: org.aspectj.lang.ProceedingJoinPoint joinPoint. Не забудьте вернуть ответ:

private Object proceedSoapExecution(ProceedingJoinPoint joinPoint) throws Throwable {
    long startExcecution=System.currentTimeMillis();
    Object response = joinPoint.proceed(joinPoint.getArgs());
    long endExcutution=System.currentTimeMillis();
    long timeDuration=endExcutution-startExcecution;
    logTimeExcecution(soapTimeDuration, timeDuration);
    return response;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...