From a90d76d209f8a01ee0ff04d426d0a7d11aa9c26a Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Tue, 20 Jan 2026 10:27:13 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3241 --- .../service/UpdatingFidAndPdService.java | 35 +++++++++++-------- .../task/PipelineRecalcPDOrchestrator.java | 3 +- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFidAndPdService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFidAndPdService.java index 5193514..47aae57 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFidAndPdService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFidAndPdService.java @@ -49,23 +49,28 @@ public class UpdatingFidAndPdService { Pipeline pipeline = pipelinePackageManager.buildRecalculationPD(new SetupParam(null, null, PipelineMode.RECALC_PERSONAL_DATA)); CompletableFuture future = pipelineRecalcPDOrchestrator.startOrReject(pipeline); future.whenComplete((o, throwable) -> { - if (throwable != null) { - log.error(throwable.getMessage(), throwable); - return; - } - - List packagesRepeated = userPackageMapper.findForRepeatedPackages(); - packagesRepeated.forEach(userPackage -> { - Long packageId = userPackage.getId(); - SetupParam setupParam = new SetupParam(packageId, null, PipelineMode.DEFAULT); - try { - Pipeline makeXmlByCache = pipelinePackageManager.build(setupParam); - pipelinePackageOrchestrator.startOrDelay(makeXmlByCache, packageId); - } catch (Exception e) { - log.error("Failed to build pipeline", e); + try { + if (throwable != null) { + log.error(throwable.getMessage(), throwable); + return; } - }); + List packagesRepeated = userPackageMapper.findForRepeatedPackages(); + packagesRepeated.forEach(userPackage -> { + Long packageId = userPackage.getId(); + SetupParam setupParam = new SetupParam(packageId, null, PipelineMode.DEFAULT); + try { + Pipeline makeXmlByCache = pipelinePackageManager.build(setupParam); + pipelinePackageOrchestrator.startOrDelay(makeXmlByCache, packageId); + } catch (Exception e) { + log.error("Failed to build pipeline", e); + } + }); + } finally { + log.info("pipeline finished"); + pipeline.close(); + pipelineRecalcPDOrchestrator.release(); + } }); } catch (Exception e) { log.error("Failed to build pipeline", e); diff --git a/src/main/java/ru/nbch/credit_tracker/service/task/PipelineRecalcPDOrchestrator.java b/src/main/java/ru/nbch/credit_tracker/service/task/PipelineRecalcPDOrchestrator.java index 0a92801..f024ed6 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/task/PipelineRecalcPDOrchestrator.java +++ b/src/main/java/ru/nbch/credit_tracker/service/task/PipelineRecalcPDOrchestrator.java @@ -54,10 +54,11 @@ public class PipelineRecalcPDOrchestrator { .orTimeout(creditTrackerSettings.getPipeline().globalTimeout().toMillis(), TimeUnit.MILLISECONDS); } - private void release() { + public void release() { log.debug("checking for delayed pipelines..."); synchronized (lock) { semaphore.release(); + log.info("semaphore amount: {}", semaphore.availablePermits()); } } }