Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Market Stream Disconnects #4

Closed
BusinessDuck opened this issue Jul 19, 2022 · 8 comments
Closed

Market Stream Disconnects #4

BusinessDuck opened this issue Jul 19, 2022 · 8 comments

Comments

@BusinessDuck
Copy link

Разрывы соединения при технических работах на севрере API.

Логи ошибок:

TinkoffApiError: /tinkoff.public.invest.api.contract.v1.MarketDataStreamService/MarketDataStream CANCELLED: Call cancelled at buildTinkoffApiError (/root/bots/node_modules/tinkoff-invest-api/src/api-error.ts:51:17) at errorMiddleware (/root/bots/node_modules/tinkoff-invest-api/src/api-error.ts:41:13) at runMicrotasks (<anonymous>) at processTicksAndRejections (node:internal/process/task_queues:96:5) at Object.next (/root/bots/node_modules/nice-grpc/src/client/createBidiStreamingMethod.ts:139:28) at MarketStream.loop (/root/bots/node_modules/tinkoff-invest-api/src/stream/base.ts:61:22) { path: '/tinkoff.public.invest.api.contract.v1.MarketDataStreamService/MarketDataStream', code: 1, details: 'Call cancelled', trackingId: '', envoyUpstreamServiceTime: '', ratelimit: '', ratelimitRemaining: '', ratelimitReset: ''

Необходимо сделать повторное переподключение (при этом сказали что есть метод восстановления пропущенных событий узнать что за метод и это скоре всего про сделки, тики достаточно просто реконнекта)

@vitalets
Copy link
Owner

при этом сказали что есть метод восстановления пропущенных событий узнать что за метод и это скоре всего про сделки, тики достаточно просто реконнекта

@AlexanderVolkovTCS Александр, привет! А не подскажешь, как в стриме получить пропущенные события?

@AlexanderVolkovTCS
Copy link

Привет! Загрузить пропущенные трейды можно через метод https://tinkoff.github.io/investAPI/marketdata/#getlasttrades

@BusinessDuck
Copy link
Author

@vitalets можно ли сплитануть этто issue чтобы отдельно сделать механизм восстановления общего стрима, а затем в него допилить уже восстановление пропущенных сделок. По 2м причинам

  1. Думаю задача долгая и тестировать нужно тщательно эти восстановления
  2. В Debut не используется слежение за сделками, и нам бы сильно помог уже простой реконнект.

PS. Если до открытия биржи реально закончить полностью таску то можно и не сплитать

@vitalets
Copy link
Owner

Привет! Загрузить пропущенные трейды можно через метод https://tinkoff.github.io/investAPI/marketdata/#getlasttrades

Ок, спасибо! В общем никакой магии )

@vitalets
Copy link
Owner

@vitalets можно ли сплитануть этто issue чтобы отдельно сделать механизм восстановления общего стрима, а затем в него допилить уже восстановление пропущенных сделок.

Согласен, так и надо сделать. Восстановление нужно продумать, чтобы ничего не потерять и лишнего не добавить.

@vitalets
Copy link
Owner

PS. Если до открытия биржи реально закончить полностью таску то можно и не сплитать

Дима, а если это срочно, ты же можешь прямо сейчас одной строчкой на уровне приложения сделать восстановление:

api.stream.market.on('close', () => api.stream.market.watch({...});

Или там сложность, что список текущих подписок теряется и их надо где-то отдельно хранить?

@BusinessDuck
Copy link
Author

Да, в этом сложность, я могу костыльнуть, но до понедельника до открытия бирж это не нужно

@vitalets
Copy link
Owner

Пофикшено в #7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants