package org.erlide.runtime.service; public class CooldownRestartPolicy extends ServiceRestartPolicy { /** * If restarting sooner than this, it's probably an unrecoverable error. */ public static final int RESTART_INTERVAL = 5000; private long last; private long interval = RESTART_INTERVAL; public CooldownRestartPolicy() { this(RESTART_INTERVAL); } public CooldownRestartPolicy(final long interval) { this.interval = interval; last = System.currentTimeMillis(); } @Override public void notifyRestart() { last = System.currentTimeMillis(); } @Override public boolean shouldRestart() { return System.currentTimeMillis() - last > interval; } }