首页 > 解决方案 > 在 Spring 集成 sftp 中的流处理期间休眠

问题描述

我使用 Spring 集成 sftp 来获取数据并解析并发送到目标。但是流的速度太快了,就像每一秒,都会有几万行发送到目标。但是目标系统不能在短时间内处理太多的数据。

现在我想让它变慢。有什么方法可以控制流媒体的速度吗?

标签: spring-integrationspring-integration-sftp

解决方案


可能RateLimiterRequestHandlerAdvice可以帮助您:https ://docs.spring.io/spring-integration/docs/current/reference/html/handler-advice.html#rate-limiter-advice

虽然很高兴看到你的过程是什么......

流媒体太快了

听起来您将轮询转移到 some TaskExecutor,因此您的消费者无法跟上传入的消息。可能您可以使用足够的线程池来限制速率。或者您可以增加轮询间隔。考虑不要将 afixedRate用于轮询器:您不会产生比您需要的更多的轮询任务。使用 afixedDelay您不会有比 1 更多的轮询任务,并且在前一个完成之前不会产生新的。


推荐阅读