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; }
public BatchService(IApogeeFlusher flusher, IBatchQueue <T> queue, IBatchNotifier <T> batchNotifier) { flusher.Register(Flush); _queue = queue; _batchNotifier = batchNotifier; }