【问题标题】:How consumer QueueChannel with some rate?QueueChannel如何消费一些费率?
【发布时间】:2020-04-08 08:59:17
【问题描述】:

Here 是如何填充和处理队列的示例。但是如何处理带有速率的消息?每秒处理N 消息?

更新 这里的“进程”:我的意思是“出队”。例如。如何每秒出列 N 条消息?

【问题讨论】:

  • “过程”是什么意思?在实现循环条件时,您可以通过简单的数学控制每秒要出列的消息数量。但是处理(也就是对消息的作用)是由用户自己的代码控制的,所以绝对没有办法以任何一般的方式进行估计。您可能有一个可以每秒出列 100 条消息的代码,但假设一条消息的实际过程需要一分钟。 . .等等
  • 感谢您的快速回复。问题已更新。我的意思是出队率

标签: java spring spring-boot spring-integration


【解决方案1】:

您可以像我之前提到的那样编写一个带有某种速率控制的循环(例如,通过 Thread.sleep 作为最基本的)。 您也可以尝试使用@Scheduled 注解。

这里是每秒调用 100 次的方法示例

@Scheduled(fixedRate = 10)
public void dequeue() {
        //queue.poll(..)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    相关资源
    最近更新 更多