Сон во время потоковой обработки в Spring интеграции sftp - PullRequest
1 голос
/ 02 апреля 2020

Я использую Spring интеграцию sftp, чтобы получать данные, анализировать и отправлять их в цель. Но потоковая передача слишком быстрая, как и каждую секунду, десятки тысяч строк будут отправлены на цель. Но целевая система не может обрабатывать слишком много данных за короткое время.

Теперь я хочу сделать это медленнее. Есть ли способ, подобный сну, или другой способ контролировать скорость потоковой передачи?

1 Ответ

2 голосов
/ 02 апреля 2020

Вероятно, RateLimiterRequestHandlerAdvice может помочь вам в этом: https://docs.spring.io/spring-integration/docs/current/reference/html/handler-advice.html#rate -limiter-advice

Хотя было бы здорово увидеть, каков ваш процесс ...

потоковая передача слишком быстрая

Звучит так, как будто вы сдвинули опрос до некоторого TaskExecutor, так что ваш потребитель не может идти в ногу с входящими сообщениями. Вероятно, вы можете ограничить скорость с достаточным пулом потоков. Или вы можете увеличить интервал опроса. Не используйте fixedRate и для опроса: вы не будете вызывать больше опроса, чем вам нужно. С fixedDelay у вас не будет больше заданий опроса, чем 1, а новое не будет появляться, пока не закончится предыдущий.

...