Spring 集成 sftp 中的流处理期间休眠

Sleep during stream processing in Spring integration sftp

我使用 Spring 集成 sftp 来获取数据并解析并发送到目标。但是streaming太快了,好像每一秒,都会有几万行发送到target。但是目标系统无法在短时间内处理太多数据。

现在我想让它慢一点。有什么方法可以控制流式传输的速度吗?

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

尽管很高兴看到您的流程是什么...

the streaming is too fast

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