Search in sources :

Example 1 with PartitionReceiver

use of com.microsoft.azure.eventhubs.PartitionReceiver in project nifi by apache.

the class GetAzureEventHub method getReceiver.

PartitionReceiver getReceiver(final ProcessContext context, final String partitionId) throws IOException, ServiceBusException, ExecutionException, InterruptedException {
    PartitionReceiver existingReceiver = partitionToReceiverMap.get(partitionId);
    if (existingReceiver != null) {
        return existingReceiver;
    }
    // to the map atomically. Hence, the synchronized block.
    synchronized (this) {
        existingReceiver = partitionToReceiverMap.get(partitionId);
        if (existingReceiver != null) {
            return existingReceiver;
        }
        final String consumerGroupName = context.getProperty(CONSUMER_GROUP).getValue();
        final PartitionReceiver receiver = eventHubClient.createReceiver(consumerGroupName, partitionId, configuredEnqueueTime == null ? Instant.now() : configuredEnqueueTime).get();
        receiver.setReceiveTimeout(receiverFetchTimeout == null ? Duration.ofMillis(60000) : receiverFetchTimeout);
        partitionToReceiverMap.put(partitionId, receiver);
        return receiver;
    }
}
Also used : PartitionReceiver(com.microsoft.azure.eventhubs.PartitionReceiver)

Aggregations

PartitionReceiver (com.microsoft.azure.eventhubs.PartitionReceiver)1