Многие API не разрешают избыточно частое (по их мнению) обращение к некоторым данным. Почти всегда на разные типы запросов есть те или иные ограничения. И в случае их превышения происходит какой-то вид отключения клиента от API, либо даже денежные штрафы!
Нам конечно же доводить до отключения коннектора от API нельзя. И коннектор, который не умеет соблюдать дистанцию между запросами, не работающий.
В связи с этим в коннекторах необходимо устанавливать ограничение на запросы определённых методов. Вроде подписки на инструменты или даже выставление ордеров. Как это делать? Поговорим в этой статье.

Объект, который отвечает за задержки между запросами, называется RateGate и находится у нас в проекте вот здесь:

Рис.1. Расположение RateGate в проекте.
RateGate объявляется как поле класса и сразу же инициализируется. В качестве переменных конструктор принимает: 1) Кол запросов; 2) За какое время. Выглядит это вот так:

Рис.2. Пример применения RateGate в коннекторе BitGet.
Какие методы стоит защищать от спама со стороны OsEngine?
По всем этим запросам существуют автоматические тесты, поэтому рекомендуется внимательно расставлять соответствующие счётчики и читать документацию. Если по какому-то типу запросов есть ограничения, и запрос не защищён от спама, тесты не пройдут.
Удачных алгоритмов!
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support