Pause only if we're running low on queues to persist.

This commit is contained in:
Jon Chambers 2020-10-03 10:42:41 -04:00 committed by Jon Chambers
parent 2ba36ee04c
commit 65e585e122
1 changed files with 8 additions and 4 deletions

View File

@ -58,8 +58,12 @@ public class MessagePersister implements Managed {
this.workerThread = new Thread(() -> { this.workerThread = new Thread(() -> {
while (running) { while (running) {
try { try {
persistNextQueues(Instant.now()); final int queuesPersisted = persistNextQueues(Instant.now());
Util.sleep(100); queueCountHistogram.update(queuesPersisted);
if (queuesPersisted == 0) {
Util.sleep(100);
}
} catch (final Throwable t) { } catch (final Throwable t) {
logger.warn("Failed to persist queues", t); logger.warn("Failed to persist queues", t);
} }
@ -92,7 +96,7 @@ public class MessagePersister implements Managed {
} }
@VisibleForTesting @VisibleForTesting
void persistNextQueues(final Instant currentTime) { int persistNextQueues(final Instant currentTime) {
final int slot = messagesCache.getNextSlotToPersist(); final int slot = messagesCache.getNextSlotToPersist();
List<String> queuesToPersist; List<String> queuesToPersist;
@ -118,7 +122,7 @@ public class MessagePersister implements Managed {
queuesPersisted += queuesToPersist.size(); queuesPersisted += queuesToPersist.size();
} while (queuesToPersist.size() >= QUEUE_BATCH_LIMIT); } while (queuesToPersist.size() >= QUEUE_BATCH_LIMIT);
queueCountHistogram.update(queuesPersisted); return queuesPersisted;
} }
@VisibleForTesting @VisibleForTesting