You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
При запросе сделок эпизодически происходит такая ошибка:
File "C:\Users\ftp-user2\Trading\Phyton\tinklib.py", line 73, in get_trades
resp = client.market_data.get_last_trades(figi = fg,
File "C:\Users\Admin\anaconda3\lib\site-packages\tinkoff\invest_errors.py", line 28, in wrapper
raise RequestError(
tinkoff.invest.exceptions.RequestError: (<StatusCode.UNAVAILABLE: (14, 'unavailable')>, 'upstream request timeout', Metadata(tracking_id=None, ratelimit_limit='300, 300;w=60', ratelimit_remaining=298, ratelimit_reset=55, message=None))
Проблема в том, что мой скрипт на этой ошибке подвисает на 1 минуту, похоже где-то внутри библиотеки установлен такой таймаут. Ошибка нечастая, но неприятная, я бы предпочел поставить меньшее время ожидания, чтобы либо послать новый запрос, либо корректно обработать ситуацию. Как правило ошибка происходит в самом начале торгов, примерно в 10.01-10.03.
Желаемое решение
Добавить возможность устанавливать таймаут в секундах, в виде параметра или настроить этот таймаут глобально для всей библиотеки в целом, в виде:
resp = client.market_data.get_last_trades(figi = fg, from_=ex_from1, to=ex_to1, timeout = 5)
либо
client.market_data.set_request_params(timeout = 5)
Дополнительно
No response
The text was updated successfully, but these errors were encountered:
Документация написана так, будто бы у нас есть кнотроль над дедлайном, но выглядит так, что на текущий момент это не поддерживается.
Есть отсылка на gRPC and Deadlines, с примерами, только там нет примеров для Python, есть Go, C++, C#. Те примеры не помогают.
Судя по ответам stackoverflow и по коду в этом репозитории, в Python используется как раз параметр timeout, только его нельзя передать через API, которое нам предоставлено:
Как временное решение, в библиотеке grpc для Python поддерживается управление дефолтным таймаутом через переменную среды "GRPC_PYTHON_DEFAULT_TIMEOUT_SECONDS"
Описание
При запросе сделок эпизодически происходит такая ошибка:
File "C:\Users\ftp-user2\Trading\Phyton\tinklib.py", line 73, in get_trades
resp = client.market_data.get_last_trades(figi = fg,
File "C:\Users\Admin\anaconda3\lib\site-packages\tinkoff\invest_errors.py", line 28, in wrapper
raise RequestError(
tinkoff.invest.exceptions.RequestError: (<StatusCode.UNAVAILABLE: (14, 'unavailable')>, 'upstream request timeout', Metadata(tracking_id=None, ratelimit_limit='300, 300;w=60', ratelimit_remaining=298, ratelimit_reset=55, message=None))
Проблема в том, что мой скрипт на этой ошибке подвисает на 1 минуту, похоже где-то внутри библиотеки установлен такой таймаут. Ошибка нечастая, но неприятная, я бы предпочел поставить меньшее время ожидания, чтобы либо послать новый запрос, либо корректно обработать ситуацию. Как правило ошибка происходит в самом начале торгов, примерно в 10.01-10.03.
Желаемое решение
Добавить возможность устанавливать таймаут в секундах, в виде параметра или настроить этот таймаут глобально для всей библиотеки в целом, в виде:
resp = client.market_data.get_last_trades(figi = fg, from_=ex_from1, to=ex_to1, timeout = 5)
либо
client.market_data.set_request_params(timeout = 5)
Дополнительно
No response
The text was updated successfully, but these errors were encountered: