Untitled
unknown
plain_text
a year ago
3.2 kB
5
Indexable
@Override public void initImportQueuesProcess() { log.info("[ImportQueuesServiceImpl::initImportQueuesProcess] BEGIN"); // recupero api di artemis richiamando service Jolokia Map<String, ? extends QueueMetrics> metricsMapApiArtemis = queueMetricsService.getMetricsViaJolokia(null); boolean hasAppAll = true; // conteggio totale code importate int queueImportedCount = 0; // recupero solo le code topics che rispettano sintassi inps metricsMapApiArtemis.values().removeIf(qm -> { QueueName qn; try { qn = new QueueName(qm.getName()); log.info("queue name : {}", qn); } catch (QueueNameSyntaxException e) { // segnalo errore ma non bloccante per l'import log.error("Queue che non rispetta sintassi : {}", qm.getName(), e); return true; } return !hasAppAll; }); // Creo lista delle code importabili List<ImportableQueueDto> allImportableQueues = metricsMapApiArtemis.values() .stream() .map((QueueMetrics mq) -> ImportableQueueDto.builder() .id(mq.getName()) .address(mq.getAddress()) .messageCount(mq.getTotalMessageCount()) .consumerCount(mq.getConsumerCount()) .threshold(mq.getName().endsWith(QueueName.ERROR_SUFFIX) ? 0 : 1000) .monitored(true) .selectedRow(true) .build()) .collect(Collectors.toList()); // ciclo ogni oggetto in allImportableQueues per creare un dto di Queue // e passarlo a queueService per salvarli tutti su db se non presenti for (ImportableQueueDto importableQueueDto : allImportableQueues) { // verifico che la coda non sia già presente su db if (!queueService.findById(importableQueueDto.getId()).isPresent()) { log.info("coda non presente da importare {}", importableQueueDto.getId()); // creo oggetto Queue da trasmettere a queueService per importare ogni singola // coda e salvarla sul db qms Queue queueModel = new Queue(); queueModel.setId(importableQueueDto.getId()); queueModel.setAddress(importableQueueDto.getAddress()); queueModel.setMonitored(importableQueueDto.isMonitored()); queueModel.setThreshold(importableQueueDto.getThreshold()); log.info("queue dto : {}", queueModel.toString()); queueService.ensureApplicationAsset(queueModel); queueService.save(queueModel); queueImportedCount++; } else { log.info("coda già presente : {}", importableQueueDto.getId()); } } log.info("totale code importate : {}", queueImportedCount); log.info("[ImportQueuesServiceImpl::initImportQueuesProcess] END"); } }
Editor is loading...
Leave a Comment