spring-integration - 在 Spring 集成 sftp 中的流处理期间休眠
问题描述
我使用 Spring 集成 sftp 来获取数据并解析并发送到目标。但是流的速度太快了,就像每一秒,都会有几万行发送到目标。但是目标系统不能在短时间内处理太多的数据。
现在我想让它变慢。有什么方法可以控制流媒体的速度吗?
解决方案
可能RateLimiterRequestHandlerAdvice
可以帮助您:https ://docs.spring.io/spring-integration/docs/current/reference/html/handler-advice.html#rate-limiter-advice
虽然很高兴看到你的过程是什么......
流媒体太快了
听起来您将轮询转移到 some TaskExecutor
,因此您的消费者无法跟上传入的消息。可能您可以使用足够的线程池来限制速率。或者您可以增加轮询间隔。考虑不要将 afixedRate
用于轮询器:您不会产生比您需要的更多的轮询任务。使用 afixedDelay
您不会有比 1 更多的轮询任务,并且在前一个完成之前不会产生新的。
推荐阅读
- c++ - Must a compiler always remove a try-catch block if it's proven to be non-throwing
- java - Java中的10,000,000个整数数组插入排序
- mysql - MySQL 数据库 Show Lik 'רולר חו×'
- wordpress - 导航分页不显示
- python - 在python中一遍又一遍地得到这个“属性错误”
- c# - 是否有与 Console.ReadKey() 等效的内置异步方法?
- c++ - 使用莱布尼茨公式的 Pi 近似
- c# - 保护连接字符串 c# ado.net 连接池
- php - Laravel,仅显示所有者的产品列表抛出相同的路线和多个模型
- go - 使用 redis 架构 URL 连接到 redis 服务器