All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.up.uca.job.timer.Interval Maven / Gradle / Ivy

The newest version!
package io.vertx.up.uca.job.timer;

import io.aeon.experiment.specification.sch.KTimer;
import io.vertx.core.Handler;

import java.util.function.Consumer;

/*
 * Scheduled for each
 */
public interface Interval {

    Interval bind(Consumer controlFn);
    /*
     * New design for job extension interval scheduler management the schedule instead of
     * original three:
     *
     * - FIXED
     * - PLAN
     * - ONCE
     *
     * The extension are as following:
     * - MONTH
     * - WEEK
     * - QUARTER
     * - YEAR
     *
     * Here are normalized phase:
     * 1) Wait
     * 2) Run
     * 3) Repeat Or End
     * 4) Update KTimer `runAt` of next time
     */

    /**
     * --- No Wait ------ >>> ------- End
     *
     * 「Development」
     * This method call directly and it's for development often, after the server get
     * the commend from front-end user interface, the Job start right now. it means that when
     * the developer want to debug the job detail from user interface, this api could be
     * called to see the job running details.
     *
     * @param actuator Executor
     */
    default void startAt(final Handler actuator) {
        this.startAt(actuator, null);
    }

    void startAt(Handler actuator, KTimer timer);

    void restartAt(Handler actuator, KTimer timer);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy