Untitled
unknown
plain_text
a year ago
3.2 kB
17
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