private void btnStart_Click(object sender, EventArgs e) { groupBox1.Enabled = false; btnStart.Enabled = false; btnStop.Enabled = true; btnClear.Enabled = false; _mostRecentTimestamp = DateTime.MinValue; _nextUpdateTimestamp = DateTime.MinValue; ShardIteratorType iteratorType = ShardIteratorType.LATEST; if (rbStartOfStream.Checked) { iteratorType = ShardIteratorType.TRIM_HORIZON; } if (_tpAverageConsumer.ShardIteratorType != iteratorType) { Clear(); } _tpAverageConsumer.ShardIteratorType = iteratorType; _tpCorrelationConsumer.ShardIteratorType = iteratorType; IsReading = true; Read(); }
public KShard(string shardId, string streamName, ShardIteratorType shardIteratorType, string sequenceNumber) { ShardId = shardId; StreamName = streamName; ShardIteratorType = shardIteratorType; SequenceNumber = sequenceNumber; LastUpdateUtc = DateTime.UtcNow; }
public ShardSettings( string streamName, string shardId, ShardIteratorType shardIteratorType, TimeSpan refreshInterval, int limit, string startingSequenceNumber = null, DateTime?atTimestamp = null) { if (limit > 10000 || limit < 1) { throw new ArgumentException("Limit must be between 0 and 10000. See: http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html"); } StreamName = streamName; ShardId = shardId; ShardIteratorType = shardIteratorType; RefreshInterval = refreshInterval; Limit = limit; StartingSequenceNumber = startingSequenceNumber; AtTimestamp = atTimestamp; if (shardIteratorType == ShardIteratorType.AFTER_SEQUENCE_NUMBER || shardIteratorType == ShardIteratorType.AT_SEQUENCE_NUMBER) { if (string.IsNullOrEmpty(startingSequenceNumber)) { throw new ArgumentException($"Shard iterator type [{shardIteratorType}] require starting sequence number to be provided.", nameof(startingSequenceNumber)); } } else if (shardIteratorType == ShardIteratorType.AT_TIMESTAMP) { if (!atTimestamp.HasValue) { throw new ArgumentException($"Shard iterator type [{shardIteratorType}] require atTimestamp to be provided.", nameof(atTimestamp)); } } }
public ShardSettings WithShardIteratorType(ShardIteratorType shardIteratorType) => new ShardSettings(this.StreamName, this.ShardId, shardIteratorType, this.RefreshInterval, this.Limit, this.StartingSequenceNumber, this.AtTimestamp);