Проблема с параллельным потоком
При запуске метода он никогда не печатал ни одной строки.
private void generateXmlAndImages() {
List<XmlData> collect = xmlDataMap.keySet().stream()
.parallel()
.map(xmlId -> xmlDataMap.get(xmlId))
.map(data -> buildIt(data))
.collect(Collectors.toList());
log.info("1:collect.size() = " + collect.size());
log.info("2:input map.size() = " + xmlDataMap.values().size());
}
private XmlData buildIt(XmlData xmlData) {
log.info("generatingXmlAndImages: xmlId=" + xmlData.getId());
try {
if (!xmlData.isValid()) {
return null;
}
Map<String, String> imagesPaths = generateSignatureAndLogoImages(xmlData);
XML xml = XmlGenerator.generateXML(imagesPaths, xmlData);
xmlData.setXml(xml);
xmlData.setValid(true);
log.info("generatedXmlAndImages: xmlId=" + xmlData.getId());
} catch (Exception e) {
String errorMessage = "Unable to generate Images or XML for xml Id:" + xmlData.getId();
log.error("FAILED" + errorMessage, e);
xmlData.setValid(false);
xmlData.addError(e.toString());
}
return xmlData;
}
Болеслав
Вопрос задан6 мая 2024 г.