我正在尝试设置一个集成流来使用来自亚马逊 sqs 队列的消息,并且到目前为止它工作正常。但我想调整每分钟或每秒的消息数量。例如每分钟 20 条消息。
这是我的 sql listener bean 的定义
@Bean
public MessageProducer mySqsMessageDrivenChannelAdapter() {
SqsMessageDrivenChannelAdapter adapter = new SqsMessageDrivenChannelAdapter(this.amazonSqs, queueName);
adapter.setMessageDeletionPolicy(SqsMessageDeletionPolicy.ON_SUCCESS);
adapter.setVisibilityTimeout(TIMEOUT_VISIBILITY);
adapter.setWaitTimeOut(TIMEOUT_MESSAGE_WAIT);
adapter.setMaxNumberOfMessages(prefetch);
adapter.setOutputChannel(processMessageChannel());
return adapter;
}
如您所见,我设置了每次轮询要获取的最大消息数,但是如何设置轮询之间的延迟?
在常规 jms 队列中,我可以使用 JMS.inboundAdapter 使用自定义轮询器,但似乎使用 SqsMessageDrivenChannelAdapter 我无法设置任何轮询计时器值。
也许我可以使用除 SqsMessageDrivenChannelAdapter 之外的 MessageProducer,但哪一个?
是否可以使用 sqs 设置 JMS.inboundAdapter?