/// <summary> /// Serializes measurements to InfluxDB. /// </summary> protected override void ProcessMeasurements(IMeasurement[] measurements) { if (measurements.Length == 0) return; if (m_useParallelPosting) { List<IMeasurement[]> measurementGroups = new List<IMeasurement[]>(); IMeasurement[] measurementGroup = measurements.Take(m_valuesPerPost).ToArray(); int skipCount = measurementGroup.Length; while (measurementGroup.Length > 0) { measurementGroups.Add(measurementGroup); measurementGroup = measurements.Skip(skipCount).Take(m_valuesPerPost).ToArray(); skipCount += measurementGroup.Length; } Parallel.ForEach(measurementGroups, PostMeasurementsToArchive); m_totalParallelGroups += measurementGroups.Count; } else { PostMeasurementsToArchive(measurements); } }