log.debug("reusing existing message sender [target: {}, credit: {}]", key, sender.getCredit()); result.tryComplete(sender); } else if (!creationLocks.computeIfAbsent(key, k -> Boolean.FALSE)) {
private Future<Device> createLinks(final Device authenticatedDevice, final Span currentSpan) { final Future<MessageSender> telemetrySender = getTelemetrySender(authenticatedDevice.getTenantId()); final Future<MessageSender> eventSender = getEventSender(authenticatedDevice.getTenantId()); return CompositeFuture .all(telemetrySender, eventSender) .compose(ok -> { currentSpan.log("opened downstream links"); LOG.debug( "providently opened downstream links [credit telemetry: {}, credit event: {}] for tenant [{}]", telemetrySender.result().getCredit(), eventSender.result().getCredit(), authenticatedDevice.getTenantId()); return Future.succeededFuture(authenticatedDevice); }); }
private Future<Device> createLinks(final Device authenticatedDevice, final Span currentSpan) { final Future<MessageSender> telemetrySender = getTelemetrySender(authenticatedDevice.getTenantId()); final Future<MessageSender> eventSender = getEventSender(authenticatedDevice.getTenantId()); return CompositeFuture .all(telemetrySender, eventSender) .compose(ok -> { currentSpan.log("opened downstream links"); LOG.debug( "providently opened downstream links [credit telemetry: {}, credit event: {}] for tenant [{}]", telemetrySender.result().getCredit(), eventSender.result().getCredit(), authenticatedDevice.getTenantId()); return Future.succeededFuture(authenticatedDevice); }); }