@Override public void run() { while (true) { try { reconsumeRecords(); } catch (Exception e) { logger.error("KafkaReconsumePollThread Error Occur",e); //clean local data and load again reconsumer.resume(reconsumer.paused()); initRetryRecordsMap();//clean and new try { Thread.sleep(5000); } catch (InterruptedException ie) { logger.info("KafkaReconsumePollThread interrupted,exit thread"); return; } } } } };
@Test public void testPause() { KafkaConsumer<byte[], byte[]> consumer = newConsumer(groupId); consumer.assign(singletonList(tp0)); assertEquals(singleton(tp0), consumer.assignment()); assertTrue(consumer.paused().isEmpty()); consumer.pause(singleton(tp0)); assertEquals(singleton(tp0), consumer.paused()); consumer.resume(singleton(tp0)); assertTrue(consumer.paused().isEmpty()); consumer.unsubscribe(); assertTrue(consumer.paused().isEmpty()); consumer.close(); }