Beispiel #1
0
        /// <summary>
        /// Factory function that creates and initializes the checkpointer
        /// </summary>
        /// <param name="options"></param>
        /// <param name="streamProviderName"></param>
        /// <param name="partition"></param>
        /// <param name="serviceId"></param>
        /// <param name="loggerFactory"></param>
        /// <returns></returns>
        public static async Task <IStreamQueueCheckpointer <string> > Create(AzureTableStreamCheckpointerOptions options, string streamProviderName, string partition, string serviceId, ILoggerFactory loggerFactory)
        {
            var checkpointer = new EventHubCheckpointer(options, streamProviderName, partition, serviceId, loggerFactory);
            await checkpointer.Initialize();

            return(checkpointer);
        }
Beispiel #2
0
 private EventHubCheckpointer(AzureTableStreamCheckpointerOptions options, string streamProviderName, string partition, string serviceId, ILoggerFactory loggerFactory)
 {
     if (options == null)
     {
         throw new ArgumentNullException(nameof(options));
     }
     if (string.IsNullOrWhiteSpace(streamProviderName))
     {
         throw new ArgumentNullException(nameof(streamProviderName));
     }
     if (string.IsNullOrWhiteSpace(partition))
     {
         throw new ArgumentNullException(nameof(partition));
     }
     this.logger = loggerFactory.CreateLogger <EventHubCheckpointer>();
     this.logger.LogInformation(
         "Creating EventHub checkpointer for partition {Partition} of stream provider {StreamProviderName} with serviceId {ServiceId}.",
         partition,
         streamProviderName,
         serviceId);
     persistInterval = options.PersistInterval;
     dataManager     = new AzureTableDataManager <EventHubPartitionCheckpointEntity>(
         options,
         loggerFactory.CreateLogger <EventHubPartitionCheckpointEntity>());
     entity = EventHubPartitionCheckpointEntity.Create(streamProviderName, serviceId, partition);
 }
Beispiel #3
0
 public EventHubCheckpointerFactory(string providerName, AzureTableStreamCheckpointerOptions options, IOptions <ClusterOptions> clusterOptions, ILoggerFactory loggerFactory)
 {
     this.options        = options;
     this.clusterOptions = clusterOptions.Value;
     this.loggerFactory  = loggerFactory;
     this.providerName   = providerName;
 }
Beispiel #4
0
 private EventHubCheckpointer(AzureTableStreamCheckpointerOptions options, string streamProviderName, string partition, ILoggerFactory loggerFactory)
 {
     if (options == null)
     {
         throw new ArgumentNullException(nameof(options));
     }
     if (string.IsNullOrWhiteSpace(streamProviderName))
     {
         throw new ArgumentNullException(nameof(streamProviderName));
     }
     if (string.IsNullOrWhiteSpace(partition))
     {
         throw new ArgumentNullException(nameof(partition));
     }
     persistInterval = options.PersistInterval;
     dataManager     = new AzureTableDataManager <EventHubPartitionCheckpointEntity>(options.TableName, options.ConnectionString, loggerFactory);
     entity          = EventHubPartitionCheckpointEntity.Create(streamProviderName, options.Namespace, partition);
 }