Spring @SqsListener - 获取队列名称
Spring @SqsListener - get queue name
我知道使用 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:
@Header("LogicalResourceId") receivedQueue: String
或者 lookupDestination
如果 LogicalResourceId
作为 ARN。
我知道使用 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:
@Header("LogicalResourceId") receivedQueue: String
或者 lookupDestination
如果 LogicalResourceId
作为 ARN。