Распараллелить несколько шагов в потоке обработки - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть код ниже, где я пытаюсь создать объект из байтов.Поэтому сначала мне нужно распаковать сжатые байты в xml, а затем преобразовать их в объект RawDeal.Я смотрю, смогу ли я распараллелить шаг распаковки и здесь.Что является лучшим способом распараллелить распаковать и преобразовать вариант.Могу ли я иметь способ, который отображает несколько шагов, один делает байты в строку XML и другие преобразования XML в Pojo в параллельном режиме.Не уверены, возможно ли использование только потоков?

 private List<VersionedRawDeal> getVersionedRawDeals(List<CompressedVersionedRawDeal> compressedRawDeals) {
        List<VersionedRawDeal> versionedRawDeals = compressedRawDeals
                .parallelStream()
                .map(vrd -> getVersionedRawDeal(vrd))
                .collect(Collectors.toList());
        return versionedRawDeals;
    }

    private VersionedRawDeal getVersionedRawDeal(CompressedVersionedRawDeal compressedVerDeal){
        CompressedRawDeal compressedDeal = compressedVerDeal.rawDeal();
        DealVersion dealVersion = compressedVerDeal.dealVersion();
        final String dealXml = unzip(dealVersion, compressedDeal.getDealXmlBytes());
        final RawDeal rawDeal = RawDealTransformers.getRawDealTransformerFor(compressedDeal.getSourceSystem())
                .transformDeal(compressedDeal.getSourceEvent(), dealXml);
        return ImmutableVersionedRawDeal.builder().dealVersion(dealVersion).rawDeal(rawDeal).build();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...