Esempio n. 1
0
 public GetEventsEnumerable([NotNull] ILiveRecordTicksMarker liveRecordTicksMarker,
                            ISerializer serializer,
                            IColumnFamilyConnection connection,
                            long fromTicks,
                            long toTicks,
                            int batchSize,
                            ILog logger)
 {
     this.liveRecordTicksMarker = liveRecordTicksMarker;
     this.serializer            = serializer;
     this.connection            = connection;
     this.fromTicks             = fromTicks;
     this.toTicks   = toTicks;
     this.batchSize = batchSize;
     this.logger    = logger;
 }
        private long?TryGetFromTicks([NotNull] TaskIndexShardKey taskIndexShardKey, out ILiveRecordTicksMarker liveRecordTicksMarker)
        {
            liveRecordTicksMarker = oldestLiveRecordTicksHolder.TryGetCurrentMarkerValue(taskIndexShardKey);
            if (liveRecordTicksMarker == null)
            {
                return(null);
            }
            var overlapDuration = GetOverlapDuration(taskIndexShardKey);
            var fromTicks       = liveRecordTicksMarker.State.CurrentTicks - overlapDuration.Ticks;
            var safetyBelt      = (Timestamp.Now - TimeSpan.FromHours(6)).Ticks;

            if (fromTicks < safetyBelt)
            {
                logger.Warn("fromTicks ({FromTicks}) < safetyBelt ({SafetyBelt})", new { FromTicks = new Timestamp(fromTicks), SafetyBelt = new Timestamp(safetyBelt) });
                return(safetyBelt);
            }
            return(fromTicks);
        }
Esempio n. 3
0
 public GetEventsEnumerator([NotNull] ILiveRecordTicksMarker liveRecordTicksMarker,
                            ISerializer serializer,
                            IColumnFamilyConnection connection,
                            long fromTicks,
                            long toTicks,
                            int batchSize,
                            ILog logger)
 {
     this.liveRecordTicksMarker = liveRecordTicksMarker;
     this.serializer            = serializer;
     this.connection            = connection;
     this.fromTicks             = fromTicks;
     this.toTicks   = toTicks;
     this.batchSize = batchSize;
     this.logger    = logger;
     iFrom          = CassandraNameHelper.GetTicksRowNumber(fromTicks);
     iTo            = CassandraNameHelper.GetTicksRowNumber(toTicks);
     Reset();
     LogFromToCountStatistics();
 }