public FeedProcessorCore( ChangeFeedObserver <T> observer, FeedIterator resultSetIterator, ProcessorSettings settings, PartitionCheckpointer checkpointer, CosmosJsonSerializer cosmosJsonSerializer) { this.observer = observer; this.settings = settings; this.checkpointer = checkpointer; this.resultSetIterator = resultSetIterator; this.cosmosJsonSerializer = cosmosJsonSerializer; }
public FeedProcessorCore(ChangeFeedObserver <T> observer, CosmosContainer container, ProcessorSettings settings, PartitionCheckpointer checkpointer) { this.observer = observer; this.settings = settings; this.checkpointer = checkpointer; this.options = new ChangeFeedOptions { MaxItemCount = settings.MaxItemCount, PartitionKeyRangeId = settings.LeaseToken, SessionToken = settings.SessionToken, StartFromBeginning = settings.StartFromBeginning, RequestContinuation = settings.StartContinuation, StartTime = settings.StartTime, }; this.query = container.Client.DocumentClient.CreateDocumentChangeFeedQuery(container.LinkUri.ToString(), this.options); }
public override FeedProcessor Create(DocumentServiceLease lease, ChangeFeedObserver <T> observer) { if (observer == null) { throw new ArgumentNullException(nameof(observer)); } if (lease == null) { throw new ArgumentNullException(nameof(lease)); } ProcessorSettings settings = new ProcessorSettings { StartContinuation = !string.IsNullOrEmpty(lease.ContinuationToken) ? lease.ContinuationToken : this.changeFeedProcessorOptions.StartContinuation, LeaseToken = lease.CurrentLeaseToken, FeedPollDelay = this.changeFeedProcessorOptions.FeedPollDelay, MaxItemCount = this.changeFeedProcessorOptions.MaxItemCount, StartFromBeginning = this.changeFeedProcessorOptions.StartFromBeginning, StartTime = this.changeFeedProcessorOptions.StartTime, SessionToken = this.changeFeedProcessorOptions.SessionToken, }; string partitionKeyRangeId = lease.CurrentLeaseToken; PartitionCheckpointerCore checkpointer = new PartitionCheckpointerCore(this.leaseCheckpointer, lease); ChangeFeedPartitionKeyResultSetIteratorCore iterator = ResultSetIteratorUtils.BuildResultSetIterator( partitionKeyRangeId: partitionKeyRangeId, continuationToken: settings.StartContinuation, maxItemCount: settings.MaxItemCount, cosmosContainer: this.container, startTime: settings.StartTime, startFromBeginning: settings.StartFromBeginning); return(new FeedProcessorCore <T>(observer, iterator, settings, checkpointer, this.cosmosJsonSerializer)); }