Closed 81xx closed 2 years ago
одним из способов проверки можно использовать следующий - выставить timeout меньше пинга, и посмотреть как себя будет вести гейт.
Предлагаю указать в секции exchange
:
"exchange": {
"exchange_id": "exmo",
"timeout_ms": 1000,
...
}
Под данным issue надо будет описать как ведет себя гейт и предложить через PR решение для @nomnoms12
Эта задача сводится к добавлению одной строки :)
Разве что протестировать нужно
Эта задача сводится к добавлению одной строки :)
Разве что протестировать нужно
Да, про строку я понимаю, мне главное понять как себя будет вести гейт при ошибке timeout.
Протестировал ошибку ccxt.base.errors.RequestTimeout
. Гейт будет формировать команду и отправлять на лог-сервер. Ошибка имеет вид:
{
"event_id": "ec842c84-5321-49ad-bf80-360d56a0e1c6",
"event": "error",
"exchange": "exmo",
"node": "gate",
"instance": "test",
"algo": "test",
"action": "balance_update",
"message": "exmo GET https://api.exmo.com/v1.1/currency/list/extended",
"timestamp": 1661537860443721,
"data": [
"BTC",
"USDT",
"LTC"
]
}
За это отвечает вот этот код (он есть для всех watch-функций) https://github.com/RoboTradeCode/flash-gate/blob/b622e064bdff02f424e6ae2365e3dbf67e8fe76a/flash_gate/gate/gate.py#L324-L334
Правда гейт упал, из-за ошибки при вычислении метрик. Они не обернуты в try-except
Правда гейт упал, из-за ошибки при вычислении метрик
Одну и ошибок увидел и исправил уже: #111
Это не она была?
Правда гейт упал, из-за ошибки при вычислении метрик
Одну и ошибок увидел и исправил уже: #111
Это не она была?
Да, именно эта ошибка
Протестировал ошибку
ccxt.base.errors.RequestTimeout
. Гейт будет формировать команду и отправлять на лог-сервер. Ошибка имеет вид:{ "event_id": "ec842c84-5321-49ad-bf80-360d56a0e1c6", "event": "error", "exchange": "exmo", "node": "gate", "instance": "test", "algo": "test", "action": "balance_update", "message": "exmo GET https://api.exmo.com/v1.1/currency/list/extended", "timestamp": 1661537860443721, "data": [ "BTC", "USDT", "LTC" ] }
За это отвечает вот этот код (он есть для всех watch-функций)
Правда гейт упал, из-за ошибки при вычислении метрик. Они не обернуты в
try-except
ccxt.base.errors.RequestTimeout
) в теле сообщения писало именно что это ошибка тайм-аута, сейчас же это не совсем тривиально:
"message": "exmo GET https://api.exmo.com/v1.1/currency/list/extended"
Необходимо сделать обработку отдельно этого исключения с соответвтующим текстом.https://github.com/RoboTradeCode/flash-gate/pull/112#issuecomment-1229154578 @pybr0 добавил такую обработку. Также добавил обработку исключения превышения rate limit (знаю, это не связано с issue)
{
"event_id": "60ea40b9-3dda-4a60-9100-cc74eecf2615",
"event": "error",
"exchange": "exmo",
"node": "gate",
"instance": "benchmark_orderbooks",
"algo": "benchmark_orderbooks",
"action": "balance_update",
"message": "Timeout error",
"timestamp": 1661590317045388,
"data": [
"BTC",
"USDT",
"LTC"
]
}
{
"event_id": "f7ebe068-da3e-4489-a8a0-1028deb6b67f",
"event": "error",
"exchange": "exmo",
"node": "gate",
"instance": "benchmark_orderbooks",
"algo": "benchmark_orderbooks",
"action": "order_book_update",
"message": "Rate limit exceeded",
"timestamp": 1661590316936390,
"data": [
"BTC/USDT",
"LTC/BTC"
]
}
[timeout](https://docs.ccxt.com/en/latest/manual.html#exchange-structure)
запросов в Exmo