synchronized void appendRecheckOp() {
        doAppend(RECHECK_OP);
    }
@Test
    public void testDelayedRecheckTask() {
        CompletableFuture<Void> recheckFuture = new CompletableFuture<>();
        CompletableFuture<Void> partialUpdateFuture = CompletableFuture.completedFuture(null);
        CompletableFuture<Void> consumerInitFuture = CompletableFuture.completedFuture(null);
        QueueInstance instance = createInstance(recheckFuture, partialUpdateFuture, consumerInitFuture);

        for (int i = 0; i < 10; i++) {
            instance.queue.appendRecheckOp();
        }

        recheckFuture.complete(null);
        Awaitility.await().untilAsserted(() -> {
            // The first task will be running, and never completed until all tasks have been added.
            // Since the first was started, the second one will not be skipped.
            // The others after the second task will be skipped.
            // So the times that called "recheckTopicsChange" will be 2.
            verify(instance.mockedConsumer, times(2)).recheckTopicsChange();
        });

        // cleanup.
        instance.close();
    }