- Я использую 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 () отправляет данные с сервера клиенту.
когда я пытаюсь этот код, то ошибка, но процесс идет хорошо, чтобы показать мне?