public void execute(Handler handler) throws SQLException { checkState(select != null && !updates.isEmpty(), "SELECT or UPDATE requests are not defined"); checkState(updates.size() == 1, "There should be only one update when using a " + Handler.class.getName()); progress.start(); try { select.scroll(row -> callSingleHandler(handler, updates.iterator().next(), row)); closeUpdates(); // log the total number of processed rows progress.log(); } finally { progress.stop(); } }
public void execute(MultiHandler handler) throws SQLException { checkState(select != null && !updates.isEmpty(), "SELECT or UPDATE(s) requests are not defined"); progress.start(); try { select.scroll(row -> callMultiHandler(handler, updates, row)); closeUpdates(); // log the total number of processed rows progress.log(); } finally { progress.stop(); } }
@Test(timeout = 5_000L) public void log_at_fixed_intervals() { AtomicLong counter = new AtomicLong(42L); ProgressLogger progress = new ProgressLogger("ProgressLoggerTest", counter, Loggers.get(getClass())); progress.setPeriodMs(1L); progress.start(); while (logTester.logs(LoggerLevel.INFO).size()<2) { Uninterruptibles.sleepUninterruptibly(1, TimeUnit.MILLISECONDS); } progress.stop(); assertThat(hasInfoLog("42 rows processed")).isTrue(); // ability to manual log, generally final status counter.incrementAndGet(); progress.log(); assertThat(hasInfoLog("43 rows processed")).isTrue(); }
public void execute(Handler handler) throws SQLException { checkState(select != null && !updates.isEmpty(), "SELECT or UPDATE requests are not defined"); checkState(updates.size() == 1, "There should be only one update when using a " + Handler.class.getName()); progress.start(); try { select.scroll(row -> callSingleHandler(handler, updates.iterator().next(), row)); closeUpdates(); // log the total number of processed rows progress.log(); } finally { progress.stop(); } }
public void execute(MultiHandler handler) throws SQLException { checkState(select != null && !updates.isEmpty(), "SELECT or UPDATE(s) requests are not defined"); progress.start(); try { select.scroll(row -> callMultiHandler(handler, updates, row)); closeUpdates(); // log the total number of processed rows progress.log(); } finally { progress.stop(); } }