From a8c743cb9c99d58733b1d44b11d82fe25147a252 Mon Sep 17 00:00:00 2001 From: Winston Li Date: Mon, 12 Sep 2016 15:11:56 +0100 Subject: [PATCH] Schedule next swap job after previous job finishes --- .../bridge/swap/job/SwapJobImpl.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/job/SwapJobImpl.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/job/SwapJobImpl.java index 73e82fd6c9..fa919f7d5a 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/job/SwapJobImpl.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/job/SwapJobImpl.java @@ -80,10 +80,9 @@ public class SwapJobImpl implements SwapJob { @Override public void start() { - timer.scheduleAtFixedRate( + timer.schedule( uk.ac.ic.wlgitbridge.util.Timer.makeTimerTask(this::doSwap), - 0, - interval.toMillis() + 0 ); } @@ -93,6 +92,18 @@ public class SwapJobImpl implements SwapJob { } private void doSwap() { + try { + doSwap_(); + } catch (Throwable t) { + Log.warn("Exception thrown during swap job", t); + } + timer.schedule( + uk.ac.ic.wlgitbridge.util.Timer.makeTimerTask(this::doSwap), + interval.toMillis() + ); + } + + private void doSwap_() { Log.info("Running swap number {}", swaps.get() + 1); long totalSize = repoStore.totalSize(); Log.info("Size is {}/{} (high)", totalSize, highWatermarkBytes);