Пример #1
0
        public BatchTimer(IBatchQueue <T> queue, IBatchNotifier <T> notifier, IServiceProvider services, IOptions <ApogeeOptions> options)
        {
            _queue          = queue;
            _services       = services;
            _interval       = options.Value.FlushInterval.TotalMilliseconds;
            _timer          = new Timer(_interval);
            _timer.Elapsed += Elapsed;

            if (options.Value.MaximumQueueCountBeforeAutoFlush.HasValue)
            {
                _maximumQueueCountBeforeAutoFlush = options.Value.MaximumQueueCountBeforeAutoFlush.Value;
                notifier.Notified += FlushIfOverCount;
            }
            else
            {
                notifier.Notified += ResetTimer;
            }
            notifier.Flushed += Notifier_Flushed;
        }
Пример #2
0
 public BatchService(IApogeeFlusher flusher, IBatchQueue <T> queue, IBatchNotifier <T> batchNotifier)
 {
     flusher.Register(Flush);
     _queue         = queue;
     _batchNotifier = batchNotifier;
 }