src/main/java/com/cloudbees/sdk/extensibility/lifecycle/PeriodicService.java
public void doRun() throws Exception {
        if (inProgress.compareAndSet(false,true)) {
            try {
                run();
            } finally {
                inProgress.set(false);
            }
        } else {
            throw new IllegalStateException("Another run is already in progress");
        }
    }
public void doRun() throws Exception {
        if (inProgress.compareAndSet(false,true)) {
            try {
                run();
            } finally {
                inProgress.set(false);
            }
        } else {
            throw new IllegalStateException("Another run is already in progress");
        }
    }
Run from the web interface.

@throws Exception