Tinkoff / invest-api-java-sdk

Tinkoff Invest API Java SDK
Apache License 2.0
76 stars 21 forks source link

Как подписаться на все акции 1 запросом? #66

Closed megoRU closed 1 year ago

megoRU commented 1 year ago

Примерно так я подписываюсь на получение последних цен по instrumentId. Но в итоге из 102 я примерно смог подписаться на 52. Что я делаю не так?

  List<String> lastPricesList = userAssetRepository.findAll()
                .stream()
                .map(UserAsset::getUuid)
                .map(Asset::getId)
                .distinct()
                .toList();
        Consumer<Throwable> onErrorCallback = error -> System.out.println(error.getMessage());

        System.out.println(lastPricesList.size()); //102

        StreamProcessor<MarketDataResponse> processor = response -> {
            if (response.hasLastPrice()) {
                LastPrice lastPrice = response.getLastPrice();
                latestPriceService.tiker(lastPrice);
            }
        };

        investApi.getMarketDataStreamService()
                .newStream("stream_latest_prices", processor, onErrorCallback)
                .subscribeLastPrices(lastPricesList);
AlexanderVolkovTCS commented 1 year ago

Но в итоге из 102 я примерно смог подписаться на 52

на оставшиеся 50 - пришел ответ о неуспешной попытке подписаться - или не пришли цены?

megoRU commented 1 year ago

не отлавливал это, но будет посмотреть

megoRU commented 1 year ago

На 102 он подписался на все.

Из 2332:

  1. 2030 == SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED
  2. 302 == SUBSCRIPTION_STATUS_SUCCESS

А вообще какие лимиты?

AlexanderVolkovTCS commented 1 year ago

Всего 300 - https://tinkoff.github.io/investAPI/limits/ 302 у вас видимо были из-за дублей.