Replies: 11 comments 7 replies
-
Данный код получения стакана работает и ничего не зависает, значит дело не в сервисе TradeApi: using Finam.TradeApi.Grpc.V1;
using Finam.TradeApi.Proto.V1;
using Grpc.Core;
using Grpc.Net.Client;
using var channel = GrpcChannel.ForAddress("https://trade-api.finam.ru:443");
Metadata headers = new()
{
{ "X-Api-Key", "...." }
};
var client = new Events.EventsClient(channel);
var stream = client.GetEvents(headers);
var stop = new CancellationTokenSource();
var task = Task.Run(async () =>
{
IAsyncStreamReader<Event> responseStream = stream.ResponseStream;
while (await responseStream.MoveNext(stop.Token))
{
Event e = responseStream.Current;
if (e.PayloadCase == Event.PayloadOneofCase.Response)
{
ResponseEvent response = e.Response;
Console.WriteLine($"reqId={response.RequestId}, success={response.Success}");
}
else
{
Console.WriteLine(e.PayloadCase);
}
}
});
await stream.RequestStream.WriteAsync(new SubscriptionRequest
{
OrderBookSubscribeRequest = new OrderBookSubscribeRequest
{
RequestId = "req1",
SecurityBoard = "TQBR",
SecurityCode = "VTBR",
}
});
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
stop.Cancel();
await task; |
Beta Was this translation helpful? Give feedback.
-
Смотрите:
|
Beta Was this translation helpful? Give feedback.
-
Ну вот OKQ4JA1GFGP3 из первого сообщения - это сегодня утром, где-то между 10 и 10:30 Мск. Наберу еще йдишников/выводов таймаута - приложу сюда. |
Beta Was this translation helpful? Give feedback.
-
Прямо сейчас висит: NF6CEMO8DVZ3 |
Beta Was this translation helpful? Give feedback.
-
Заканчивается этот запрос ровно через 10 минут вот таким:
|
Beta Was this translation helpful? Give feedback.
-
D0CNODQF4HHI с таймаутом 10 секунд заканчивается таким:
т.е. он возвращает payload == response, success==true, потом должен слать сам ордербук, но вместо этого висит время таймаута и вываливает вот этот эксепшн. |
Beta Was this translation helpful? Give feedback.
-
Здравствуйте! |
Beta Was this translation helpful? Give feedback.
-
И опять ордербуки виснут: время - сейчас, примеры id: 7Q5ZP6KPM4B5, 1EG3EKNDNXPX, XETFJEML518N. |
Beta Was this translation helpful? Give feedback.
-
Стрим молчит. Нет ответа на запрос о подписке на ордербук. |
Beta Was this translation helpful? Give feedback.
-
Добрый день. Есть ли какие то сроки исправления проблемы? Тоже ловлю такие ошибки с orderbook hang. Request id: I2AWZIUJHM8W. |
Beta Was this translation helpful? Give feedback.
-
У меня похожая проблема. При подключении к GetEvents через 10 минут stream обрывается с ошибкой: |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Привет!
Вы для обратной связи оставили только почту, на которую никто не отвечает - так что я попробую написать вам тут.
Суть проблемы - иногда orderbook events зависает. Т.е. у нас есть вот такой вот код:
И он в 95% случаев работает хорошо, но иногда отдает такое:
После чего зависает намертво минут на 10, пока не получает grpc RST.
Я понимаю что туда нужно будет просто добавить таймаут, но в целом кажется что это работает не так, как нужно - если он отвечает response.success == true, то хорошо бы ему после этого начать таки слать orderbook.
Что бы исключить тут вопросы - orderbook запрашивался по высоколиквидной облигации с Мосбиржи, т.к. стакан в это время был не пустым, как минимум с точки зрения других брокеров.
@solyutor @oakio подскажете что-нибудь?
Beta Was this translation helpful? Give feedback.
All reactions