问题描述
我在 Spring Boot 应用程序中以这种方式使用 RabbitMQ:
发件人:
value_df <- data.frame(recordId = as.character(),vardf = as.character(),value = as.character())
nvar <- 0
xmlEventParse(xmlDoc_clean,list(
startElement = function (name,attrs) {
tagName <<- name
},text = function (x) {
if (nchar(x) > 0) {
if (tagName == "recordId") {
rec <<- x
} else
if (tagName == "fieldName") {
var_f <<- x
} else {
if (tagName == 'fieldValue') {
v <- x
nvar <<- nvar + 1
value_df[nvar,1:3] <<- c(rec,var_f,v)
}
}
}
},endElement = function (name) {
if (name == 'record') {
print(nvar)
}
}
))
听众:
rabbitTemplate.convertAndSend("exchange","routingKey","Message Text");
使用上述代码,当应用程序执行发送方部分时,调用了 @RabbitListener(queues = "queueName")
public void receive(String message) {
System.out.println("start");
//send an http request that takes for example 4 seconds
System.out.println("end");
}
方法。我的问题是当 receive
方法正在处理一条消息时,如果发送方将另一条消息放入队列,该方法不会处理新消息,因此不会打印第二个 receive
字直到 start
字前一条消息。换句话说,我想知道,一个消息监听器如何一次处理多个消息我不知道是什么问题。