我正在发布消息以请求队列,并将这些消息放入回复队列。在这里,我想进一步处理所有收到的消息,因此我想在发送到我的处理器之前将所有消息添加到列表(进行进一步的操作)。 下面是我的代码。
@Autowired
private GeneralProcess generalProcess;
List <RequestPojo> requestPojoGeneral = new ArrayList<RequestPojo>();
@RabbitHandler
@RabbitListener(containerFactory = "simpleMessageListenerContainerFactory", queues ="BulkSolve_GeneralrequestQueue")
public void subscribeToRequestQueue(@Payload RequestPojo sampleRequestMessage, Message message) throws InterruptedException {
requestPojoGeneral.add(sampleRequestMessage);
System.out.println("List size issssss:" +requestPojoGeneral.size() );
generalProcess.processRequestObjectslist(requestPojoGeneral);
/*System.out.println("message in general listener is:" + sampleRequestMessage.getDistance());
System.out.println("Message payload is:" + sampleRequestMessage);
System.out.println("Message payload1111 is:" + message );*/
}
以上代码我无法一次获取所有消息。在调用 generalProcess.processRequestObjectslist(requestPojoGeneral); 之前,我必须等到获得所有消息并填充列表。
谢谢。
答案 0 :(得分:0)
您可以在邮件中添加标题,例如ERROR: cannot cast type numeric to interval
LINE 1: select CAST(duration AS interval) from boboon.entries_entry;
。
然后
const validate = (values, props) => {
console.log('Default Props : ', props.name); // here not accessible
};
Test.defaultProps = {
name: 'Test',
};
export default reduxForm({
form: 'test',
validate
})(Test);
(或其他一些技术,例如添加标头“ lastMessage = true”)。
请记住,如果您的服务器在获得完整列表之前崩溃了,除非您将acknownMode设置为messageCount
,否则您将丢失消息。
然后,在处理完所有消息后,在频道上呼叫if ((int) message.getMessageProperties().getHeader("messageCount") == list.size() {
process();
}
以获取最后一条消息。
您可以访问MANUAL
作为方法参数,而deliveryTag在basicAck
中。
Channel
容器必须至少与最大批次的容器一样大,因为代理将仅允许该数量的未确认消息未处理。