### Question:
RetryProcessor implements Runnable { @Override public final void run() { retry(); } RetryProcessor(
            int maxRetryBatchSize,
            Map<CharSequence, ItemSource> failedItems,
            RetryListener[] retryListeners,
            KeySequenceSelector keySequenceSelector
    ); @Override final void run();  }### Answer:
@Test public void waitsIfBackoffMillisConfigured() { System.setProperty("appenders.retry.backoff.millis", "100"); RetryListener listener = mock(RetryListener.class); ItemSource itemSource = mock(ItemSource.class); int sequenceId = random.nextInt(1000) + RESERVED_KEYS; Map<CharSequence, ItemSource> items = new HashMap<>(); KeySequenceSelector keySequenceSelector = createDefaultTestKeySequenceSelector(sequenceId, items); fillMap(items, 1, keySequenceSelector, () -> itemSource); RetryListener[] listeners = {listener}; RetryProcessor retryProcessor = createRetryProcessor(DEFAULT_TEST_MAX_RETRY_SIZE, items, keySequenceSelector, listeners); long start = System.currentTimeMillis(); retryProcessor.run(); long end = System.currentTimeMillis(); assertTrue(end - start >= 100); }