amazon-sqs - Spring @SqsListener - 获取队列名称
问题描述
我知道使用 Springs@SqsListener
注释,我可以使用同一个侦听器侦听多个队列。根据文档:
public @interface SqsListener {
/**
* List of queues. Queues can be defined by their logical/physical name or URL.
* @return list of queues
*/
String[] value() default {};
因此,Kotlin 中的示例可能如下所示:
@SqsListener(value = ["queue1", "queue2"], deletionPolicy = SqsMessageDeletionPolicy.ALWAYS)
@MessageMapping
fun testListeningToMultipleQueues(@Payload myPayloadObject: MyPayloadObject, @Header("myCustomHeader") myCustomHeader: String) {
logger.info("Message received, but not sure from which queue")
}
方法内部是否有某种testListeningToMultipleQueues
方法可以知道消息来自queue1
还是queue2
?
解决方案
您必须使用此标头:
@Header("LogicalResourceId") receivedQueue: String
或者lookupDestination
,如果LogicalResourceId
作为 ARN 提供。
推荐阅读
- php - 我无法在 laravel 中更新照片?
- python - 使用python在表格html中显示矩阵数组
- java - java NoClassDefFoundError 与 Maven 依赖项(log4j)
- python-3.x - Python“Traceback”错误,“getResponse”未定义
- angular - Angular Material自动完成单击列表不起作用
- c - 如何更改更改数组内结构的变量
- android - 无法使用内容解析器打开 PDF
- sql-server - SQL Server 更改数据捕获 - 操作类型 3 在非 NULL 字段中显示 NULLS
- async-await - 如何在 python 中触发并忘记发布请求
- powerbi - 我想在 power bi dax 中查看所选日期后 7 天的数据