public void Track(List <KeyImpression> impressions) { if (impressions.Any()) { if (_impressionsLog != null) { Task.Factory.StartNew(() => { if (_optimized) { var optimizedImpressions = impressions.Where(i => ShouldQueueImpression(i)).ToList(); _impressionsLog.Log(optimizedImpressions); } else { _impressionsLog.Log(impressions); } }); } if (_customerImpressionListener != null) { Task.Factory.StartNew(() => { foreach (var imp in impressions) { _customerImpressionListener.Log(imp); } }); } } }
protected void RecordStats(Key key, string feature, long?changeNumber, string label, long start, string treatment, string operation, Stopwatch clock) { if (metricsLog != null) { metricsLog.Time(SdkGetTreatment, clock.ElapsedMilliseconds); } if (impressionListener != null) { KeyImpression impression = BuildImpression(key.matchingKey, feature, treatment, start, changeNumber, LabelsEnabled ? label : null, key.bucketingKeyHadValue ? key.bucketingKey : null); impressionListener.Log(impression); } }
public void Track(List <KeyImpression> impressions) { if (impressions.Any()) { if (_impressionsLog != null) { var dropped = 0; var queued = 0; var deduped = 0; if (_optimized) { var optimizedImpressions = impressions.Where(i => i.Optimized).ToList(); deduped = impressions.Count() - optimizedImpressions.Count; if (optimizedImpressions.Any()) { dropped = _impressionsLog.Log(optimizedImpressions); queued = optimizedImpressions.Count - dropped; } } else { dropped = _impressionsLog.Log(impressions); queued = impressions.Count - dropped; } RecordStats(queued, dropped, deduped); } if (_customerImpressionListener != null) { Task.Factory.StartNew(() => { foreach (var imp in impressions) { _customerImpressionListener.Log(imp); } }); } } }
private void ImpressionLog(List <KeyImpression> impressionsQueue) { if (impressionsQueue.Any()) { if (_impressionsLog != null) { Task.Factory.StartNew(() => { _impressionsLog.Log(impressionsQueue); }); } if (_customerImpressionListener != null) { Task.Factory.StartNew(() => { foreach (var imp in impressionsQueue) { _customerImpressionListener.Log(imp); } }); } } }