весенняя загрузка: сервер отправил события, вызов не действителен для состояния асинхронного запроса - PullRequest
0 голосов
/ 28 мая 2019
  • Я использую SseEmitter при загрузке Spring в контроллер
  • Я использую аннотацию @Scheduled в сервисе

иногда консольная ошибка, показывающая мне сообщение

Calling is not valid for a request with Async state

Контроллер

@GetMapping(value = "user/push", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public SseEmitter fetchNotify(@AuthenticationPrincipal CustomOAuth2User oAuth2User) {

try{

    notificationService.addEmitter(UNIQUE_KEY, DATA_SET);

} catch(Exception e){
    log.debug("Error : {}", e.getMessage());
    return emitter;
}

messagesService.addEmitter - поле уровня службы, добавьте ConcurrentMap

Услуги

@Transactional
@Scheduled(initialDelay = 2000, fixedDelay = 7000)
public void fetch(){

    // blahblahblah    

    emitter.send(alertData, MediaType.APPLICATION_JSON_UTF8);

    // blahblahblah
}

Метод emitter.send () отправляет данные с сервера клиенту.
когда я пытаюсь этот код, то ошибка, но процесс идет хорошо, чтобы показать мне?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...