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 个,并且在前一个任务完成之前不会产生新任务。
我使用 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 个,并且在前一个任务完成之前不会产生新任务。