SQSListener отсутствует идентификатор сообщения - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть настройка SQSListener, хотя он получает полезную нагрузку, ему не хватает messageId для использованного сообщения, есть ли что-то, что я делаю неправильно? Ниже приведен мой код,

@SqsListener(value = "${test-queue-url}", deletionPolicy = SqsMessageDeletionPolicy.NEVER)
  public void listen(Acknowledgment acknowledgment, String message, String messageId) {
    // messageId == null here 
    LOG.info(messageId);
  }

1 Ответ

0 голосов
/ 13 февраля 2020

Изменил мой код и извлек значение из заголовков

@Async
  @SqsListener(value = "${queue-url}", deletionPolicy = SqsMessageDeletionPolicy.NEVER)
  public void listen(Acknowledgment acknowledgment, String message, @Headers MessageHeaders headers) throws ExecutionException, InterruptedException {
    String messageId = (String) headers.get("MessageId");
    acknowledgment.acknowledge().get();
  }
...