Соблюдение ограничений скорости с помощью сопрограмм в клиентах Koltin

При выполнении пакетных операций с ресурсом, применяющим ограничение скорости, необходимо соблюдать это ограничение скорости, чтобы гарантировать, что пакет не завершится ошибкой с ответом HTTP 429.

Сопрограммы Kotlin предоставляют лаконичный способ соблюдения ограничений. Решение основано на том факте, что родитель сопрограммы завершится только после того, как завершатся все ее дочерние элементы.

В этом фрагменте задержка запускается параллельно с дорогостоящей операцией. Задержка — это предел скорости, выраженный как один запрос за X миллисекунд. Эффект заключается в том, что observeRateLimitAsync() будет использовать максимальную задержку или время выполнения дорогостоящей операции для завершения и, таким образом, никогда не превысит предел скорости. Это также не будет тратить время на задержку дольше, чем необходимо.