} catch (Exception e) { if (consumer != null) { log.warn("Error executing interceptor beforeConsume callback topic: {} consumerName: {}", consumer.getTopic(), consumer.getConsumerName(), e); } else { log.warn("Error executing interceptor beforeConsume callback", e);
@Override public void close() throws IOException { if (consumer != null) { if (!this.service.removeConsumer(this)) { log.warn("[{}] Failed to remove consumer handler", consumer.getTopic()); } consumer.closeAsync().thenAccept(x -> { if (log.isDebugEnabled()) { log.debug("[{}] Closed consumer asynchronously", consumer.getTopic()); } }).exceptionally(exception -> { log.warn("[{}] Failed to close consumer", consumer.getTopic(), exception); return null; }); } }
} catch (Exception e) { if (consumer != null) { log.warn("Error executing interceptor beforeConsume callback topic: {} consumerName: {}", consumer.getTopic(), consumer.getConsumerName(), e); } else { log.warn("Error executing interceptor beforeConsume callback", e);
public boolean addConsumer(ConsumerHandler consumer) { return topicConsumerMap .computeIfAbsent(consumer.getConsumer().getTopic(), topic -> new ConcurrentOpenHashSet<>()) .add(consumer); }
public boolean removeConsumer(ConsumerHandler consumer) { final String topicName = consumer.getConsumer().getTopic(); if (topicConsumerMap.containsKey(topicName)) { return topicConsumerMap.get(topicName).remove(consumer); } return false; }
public boolean removeReader(ReaderHandler reader) { final String topicName = reader.getConsumer().getTopic(); if (topicReaderMap.containsKey(topicName)) { return topicReaderMap.get(topicName).remove(reader); } return false; }
public boolean addReader(ReaderHandler reader) { return topicReaderMap.computeIfAbsent(reader.getConsumer().getTopic(), topic -> new ConcurrentOpenHashSet<>()) .add(reader); }
: Collections.singletonList(c.getTopic()).stream(); }).collect(Collectors.toList());
log.info("[{}/{}] Consumer was closed while receiving msg from broker", consumer.getTopic(), subscription); } else { log.warn("[{}/{}] Error occurred while consumer handler was delivering msg to {}: {}", consumer.getTopic(), subscription, getRemote().getInetSocketAddress().toString(), exception.getMessage());
@Override public void received(Consumer<T> consumer, Message<T> message) { String topicName; // If more than one topics are being read than the Message return by the consumer will be TopicMessageImpl // If there is only topic being read then the Message returned by the consumer wil be MessageImpl if (message instanceof TopicMessageImpl) { topicName = ((TopicMessageImpl<?>) message).getTopicName(); } else { topicName = consumer.getTopic(); } Record<T> record = PulsarRecord.<T>builder() .message(message) .topicName(topicName) .ackFunction(() -> { if (pulsarSourceConfig .getProcessingGuarantees() == FunctionConfig.ProcessingGuarantees.EFFECTIVELY_ONCE) { consumer.acknowledgeCumulativeAsync(message); } else { consumer.acknowledgeAsync(message); } }).failFunction(() -> { if (pulsarSourceConfig.getProcessingGuarantees() == FunctionConfig.ProcessingGuarantees.EFFECTIVELY_ONCE) { throw new RuntimeException("Failed to process message: " + message.getMessageId()); } }) .build(); consume(record); }