这是我的简单代码:
@Component
@Slf4j
@RequiredArgsConstructor
public class SQSEventsService {
private static final String MESSENGER_QUEUE = "messengerQueue";
private final SqsTemplate template;
@SqsListener(MESSENGER_QUEUE)
public void listen(String message) {
log.debug("Message received");
log.trace("Message received: {}", message);
}
@Scheduled(fixedDelay = 1000)
public void publish() {
log.debug("Sending message");
this.template.send(MESSENGER_QUEUE, "payload string");
log.debug("Message sent");
}
}
我的服务正在运行,但我不太明白为什么我没有收到消息。
这是我的队列:
$ aws sqs list-queue --profile localstack --region us-east-1
:
{
"QueueUrls": [
"http://sqs.us-east-1.localhost.localstack.cloud:4566/000000000000/MessengerQueue"
]
}
有什么想法吗?
我可以使用 aws cli 调试 sqs 队列吗?我的意思是,我如何使用
aws-cli
从 sqs 队列接收消息?
是的,您可以使用 aws-cli 从 sqs 队列接收消息。 此示例最多接收 10 条可用消息,返回所有可用属性。
命令:
aws sqs receive-message --queue-url http://sqs.us-east-1.localhost.localstack.cloud:4566/000000000000/MessengerQueue --attribute-names All --message-attribute-names All --max-number-of-messages 10
文档:https://docs.aws.amazon.com/cli/latest/reference/sqs/receive-message.html