Ejemplo n.º 1
0
        public void Push(SchedulerEvent @event)
        {
            int id = Interlocked.Increment(ref _previousId);

            _events.Enqueue(new SchedulerEventData(id, @event, DateTime.UtcNow));

            SchedulerEventData temp;

            while (_events.Count > _maxCapacity && _events.TryDequeue(out temp))
            {
            }

            long now = DateTime.UtcNow.UnixTicks();

            while (!_events.IsEmpty && _events.TryPeek(out temp) && now - temp.Date > _hubSpanMilliseconds && _events.TryDequeue(out temp))
            {
            }
        }
Ejemplo n.º 2
0
 public SchedulerEventData(int id, SchedulerEvent data, DateTime date)
 {
     _id   = id;
     _data = data;
     _date = date;
 }