From 2036d23525ca68c270c9e62de7941154a03d0ca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Horn=C3=A1k?= Date: Sat, 3 Jan 2026 17:17:19 +0100 Subject: [PATCH] Improve disk buffering example --- disk-buffering/README.md | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/disk-buffering/README.md b/disk-buffering/README.md index 9178794ad..6c78769a6 100644 --- a/disk-buffering/README.md +++ b/disk-buffering/README.md @@ -108,11 +108,24 @@ In order to read data, we can iterate through our signal storage objects and the a network exporter, as shown in the example for spans below. ```java -// Example of reading an exporting spans from disk -OtlpHttpSpanExporter networkExporter; -Iterator> spanCollections = spanStorage.iterator(); -while(spanCollections.hasNext()){ - networkExporter.export(spanCollections.next()); +/** + * Example of reading and exporting spans from disk. + * + * @return true, if the exporting was successful, false, if it needs to be retried + */ +public boolean exportSpansFromDisk(SpanExporter networkExporter, long timeout) { + for (Collection spanData : spanStorage) { + CompletableResultCode resultCode = networkExporter.export(spanData); + resultCode.join(timeout, TimeUnit.MILLISECONDS); + + if (!resultCode.isSuccess()) { + logger.trace("Error while exporting", resultCode.getFailureThrowable()); + // The iteration should be aborted here to avoid consuming batches, which were not exported successfully + return false; + } + } + logger.trace("Finished exporting"); + return true; } ```