public void start(Consumer<EVENT> eventConsumer) { Optional<BinlogFileOffset> startingBinlogFileOffset = offsetStore.getLastBinlogFileOffset(); process(eventConsumer, startingBinlogFileOffset); }
public void start(Consumer<EVENT> eventConsumer) { Optional<BinlogFileOffset> startingBinlogFileOffset = offsetStore.getLastBinlogFileOffset(); dbLogClient.start(startingBinlogFileOffset, new Consumer<EVENT>() { private boolean couldReadDuplicateEntries = true; @Override public void accept(EVENT publishedEvent) { if (couldReadDuplicateEntries) { if (startingBinlogFileOffset.map(s -> s.isSameOrAfter(publishedEvent.getBinlogFileOffset())).orElse(false)) { return; } else { couldReadDuplicateEntries = false; } } eventConsumer.accept(publishedEvent); } }); }
@Override public void start(Consumer<EVENT> eventConsumer) { Optional<BinlogFileOffset> binlogFileOffset = offsetStore.getLastBinlogFileOffset(); if (!binlogFileOffset.isPresent()) { binlogFileOffset = debeziumBinlogOffsetKafkaStore.getLastBinlogFileOffset(); } Optional<BinlogFileOffset> startingBinlogFileOffset = binlogFileOffset; process(eventConsumer, startingBinlogFileOffset); }
@Test public void shouldGetEmptyOptionalFromEmptyTopic() { OffsetStore offsetStore = getDatabaseOffsetKafkaStore(UUID.randomUUID().toString(), "mySqlBinaryLogClientName"); offsetStore.getLastBinlogFileOffset().isPresent(); offsetStore.stop(); }
private void assertLastRecordEquals(BinlogFileOffset binlogFileOffset) { OffsetStore offsetStore = getDatabaseOffsetKafkaStore(eventuateConfigurationProperties.getDbHistoryTopicName(), "mySqlBinaryLogClientName"); BinlogFileOffset lastRecord = offsetStore.getLastBinlogFileOffset().get(); assertEquals(binlogFileOffset, lastRecord); offsetStore.stop(); } }
private BinlogFileOffset generateAndSaveBinlogFileOffset() throws InterruptedException { BinlogFileOffset bfo = generateBinlogFileOffset(); OffsetStore offsetStore = getDatabaseOffsetKafkaStore(eventuateConfigurationProperties.getDbHistoryTopicName(), "mySqlBinaryLogClientName"); offsetStore.save(bfo); BinlogFileOffset savedBfo = offsetStore.getLastBinlogFileOffset().get(); assertEquals(bfo, savedBfo); offsetStore.stop(); return savedBfo; }