public RelayMetricsService(string serviceName, CancellationToken cancellationToken, string prefix = null) { _prefix = serviceName + "." + (String.IsNullOrEmpty(prefix) ? String.Empty : (prefix + ".")); _counts = new ConcurrentDictionary <string, int>(); _gauges = new ConcurrentDictionary <string, int>(); _intervalService = new IntervalService(60, cancellationToken); _intervalService.Elapsed += SendPendingMetrics; _intervalService.Start(); }
public TimedBufferBlock(TimeSpan flushPeriod, Action <T[]> flushAction, IIntervalService interval = null, CancellationToken?cancellationToken = null) { _buffer = new ConcurrentStack <T>(); _completionTask = new Task(() => { _isActive = false; }); _flushAction = flushAction; if (interval == null) { _intervalService = new IntervalService(flushPeriod, cancellationToken); } _intervalService.Elapsed += (sender, e) => { Flush(); }; _intervalService.Start(); _isActive = true; }