
metrics_influxdb.measurements.QueueableSender Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of metrics-influxdb Show documentation
Show all versions of metrics-influxdb Show documentation
A reporter for metrics which announces measurements to an InfluxDB server.
The newest version!
package metrics_influxdb.measurements;
import java.io.IOException;
import java.util.Collection;
import metrics_influxdb.misc.BoundedFIFO;
public class QueueableSender extends AbstractSender {
private final Collection measures;
private int queueSize;
protected QueueableSender(int queueSize) {
this.queueSize = queueSize;
measures = new BoundedFIFO<>(queueSize);
}
@Override
public void flush() {
if (doSend(measures)) {
measures.clear();
}
}
@Override
public void send(Measure m) {
if (m == null) {
return; // NOOP for null measures
}
if (measures.size() == queueSize) {
// we have already reached the maximumn number of measure that can be sent in one shot
// let's send them before adding a new one
if (doSend(measures)) {
measures.clear();
}
}
measures.add(m);
}
/**
* Realizes the action to send the measures
* @param measuresToSend the collection of measure to be sent
* @return true if the measures have been sent and can be discarded, false otherwise
*/
protected boolean doSend(Collection measuresToSend) {
return true;
}
@Override
public void close() throws IOException {
measures.clear();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy