Closed IvanIvanov1985 closed 2 years ago
Можете распределить запросы равномерно по секундам, тогда будет работать.
Да, спасибо, так работает. Видимо технически ограничение работает не в минуту, а за меньший интервал времени. Правда строго 240 запросов в минуту не всегда получается, но почти 240 есть, это скорее всего связано с неточностью измерения времени на самом клиенте.
Правда если размазывать по секундам, возникает ещё пара вопросов:
Чтобы получить минутные свечи по 240 тикерам каждую минуту и уложиться в лимит, нужно начинать запросы сразу после завершения этой минуты (максимум в 01 секунду). Есть ли в этой ситуации риск того, в момент 01 секунды свеча за прошлую минуту не будет завершена на сервере, и я получу искажённые данные (неправильный close_price)? Думаю, что есть, в связи с тем, что синхронизация часов на клиенте и сервере может разбежаться более чем на секунду. Cейчас чтобы гарантировать отсутствие такого риска я начинаю запросы в 30 секунд каждой минуты. С размазыванием по секундам 240 запросов так сделать не получится.
У меня сейчас стоит свой request limiter на клиенте. Если я перейду на новый алгоритм более равномерного размазывания по секундам, есть вероятность, что время от времени я буду постоянно получать 429 из-за неточностей измерения времени. Это не приведёт к тому, что рано или поздно ip моего клиента забанят в чёрный список? Или банят, только если очень-очень много 429?
P.S. Есть ещё streaming интерфейс, но там 6 подключений и в доках рекомендуют не более 30 тикеров на подключение, иначе всё будет падать в частый reconnect. Т.е. только websocket не обойтись, чтобы получить нужный поток данных.
Это не приведёт к тому, что рано или поздно ip моего клиента забанят в чёрный список
Бан может быть, если суммарное количество запросов с айпи превысит 1000 в минуту.
рекомендуют не более 30 тикеров
Цифра 30 условна и зависит от ликвидности бумаги и типа подписки. Жестких ограничений по количеству подписок нет, главное - успевать забирать присланные из сокета данные.
Добрый день. В документации указано, что количество GET запросов в /market/candles ограничено числом 240 в минуту на пользователя. Но по факту у меня ограничение меньше - я получаю код 429 раньше, чем после 240 запросов в минуту.
Я делал следующие эксперименты:
Выполнение 240 запросов в /market/candles, ожидание минуту после последнего запроса и снова выполнение 240 запросов и так несколько раз
Выполнение 240 запросов начинается в границу минуты (00 секунд), следующая пачка запросов в границу следующей минуты и т.д.
Проверял это на тикерах в том числе иностранных из СПб биржи - то же самое (т.е. ограничение мосбиржи не влияет)
Во всех случаях я получаю следующий результат:
Нормально всё работает, только если делать не более 120 запросов в минуту. Вроде бы на момент, когда я регистрировался ограничение было как раз 120, потом подняли (поправьте, если перепутал). Может это быть связано с этим и мне надо просто перерегистрироваться? Или ограничение 240 на самом деле распространяется на интервал, больший, чем минута?