@EgorSvinarev

Как выполнить код после возвращения ответа из контроллера?

Всем привет. Наткнулся на следующую проблему: при профилировании сервиса выяснил, что код, который нужен с точки зрения бизнес-логики, но который не влияет на ответ, возвращаемый сервисом занимает очень много процессорного времени. Возникает закономерный вопрос: можно ли выполнить часть кода, после возвращения сервисом?
Код

public Entity doStuff() {

    // Выполняем обязательную часть
    Entity e = a()
    // Обязательная часть, которая не влияет на возвращаемый ответ,
    b(e);
    
    return e;

}

  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
Выполните ее, эту часть кода, в отдельном потоке.
Ответ написан
Комментировать
al_gon
@al_gon
Его стоит упаковать или во внутренний эвент https://www.baeldung.com/spring-events
или в идеале положить в очередь. Нет нужды прям в Kafka или Rabbit.
Redis для этих целей тоже очень ок https://dzone.com/articles/asynchronous-task-execu...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы