Package org.apache.ignite

## Interface IgniteScheduler

-     public interface IgniteScheduler

  Provides functionality for scheduling jobs locally using UNIX cron-based syntax. Instance of `GridScheduler` is obtained from grid as follows:

       IgniteScheduler s = Ignition.ignite().scheduler();

  Scheduler supports standard UNIX `cron` format with optional prefix of `{n1, n2}`, where `n1` is delay of scheduling in seconds and `n2` is the number of execution. Both parameters are optional. Here's an example of scheduling a closure that broadcasts a message to all nodes five times, once every minute, with initial delay of two seconds:

       SchedulerFuture<?> s = Ignition.ignite().scheduler().scheduleLocal(
           new Callable<Object>() {
               @Override public Object call() throws IgniteCheckedException {
                   g.broadcast(new IgniteCallable() {...}).get();
               }
           },
           "{2, 5} * * * * *" // 2 seconds delay with 5 executions only.
       );

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<R> IgniteFuture<R>` | `callLocal​(@NotNull Callable<R> c)` | Executes given callable on internal system thread pool asynchronously.
    `IgniteFuture<?>` | `runLocal​(@NotNull Runnable r)` | Executes given closure on internal system thread pool asynchronously.
    `Closeable` | `runLocal​(@NotNull Runnable r, long delay, TimeUnit timeUnit)` | Executes given closure after the delay.
    `SchedulerFuture<?>` | `scheduleLocal​(@NotNull Runnable job, String ptrn)` | Schedules job for execution using local cron-based scheduling.
    `<R> SchedulerFuture<R>` | `scheduleLocal​(@NotNull Callable<R> job, String ptrn)` | Schedules job for execution using local cron-based scheduling.

- - ### Method Detail

    - #### runLocal

          IgniteFuture<?> runLocal​(@NotNull
                                   @NotNull Runnable r)

      Executes given closure on internal system thread pool asynchronously.

      Note that class `IgniteRunnable` implements `Runnable` and class `IgniteOutClosure` implements `Callable` interface.

      Parameters:
        `r` - Not null runnable to execute.
      Returns:
        Future for this execution.
      See Also:
        `callLocal(Callable)`, `IgniteClosure`

    - #### runLocal

          Closeable runLocal​(@NotNull
                             @NotNull Runnable r,
                             long delay,
                             TimeUnit timeUnit)

      Executes given closure after the delay.

      Note that class `IgniteRunnable` implements `Runnable`

      Parameters:
        `r` - Not null runnable to execute.
        `delay` - Initial delay.
        `timeUnit` - Time granularity.
      Returns:
        java.io.Closeable which can be used to cancel execution.

    - #### callLocal

          <R> IgniteFuture<R> callLocal​(@NotNull
                                        @NotNull Callable<R> c)

      Executes given callable on internal system thread pool asynchronously.

      Note that class `IgniteRunnable` implements `Runnable` and class `IgniteOutClosure` implements `Callable` interface.

      Type Parameters:
        `R` - Type of the return value for the closure.
      Parameters:
        `c` - Not null callable to execute.
      Returns:
        Future for this execution.
      See Also:
        `runLocal(Runnable)`, `IgniteOutClosure`

    - #### scheduleLocal

          SchedulerFuture<?> scheduleLocal​(@NotNull
                                           @NotNull Runnable job,
                                           String ptrn)

      Schedules job for execution using local cron-based scheduling.
      Parameters:
        `job` - Not null job to schedule to run as a background cron-based job.
        `ptrn` - Scheduling pattern in UNIX cron format with optional prefix `{n1, n2}` where `n1` is delay of scheduling in seconds and `n2` is the number of execution. Both parameters are optional.
      Returns:
        Scheduled execution future.

    - #### scheduleLocal

          <R> SchedulerFuture<R> scheduleLocal​(@NotNull
                                               @NotNull Callable<R> job,
                                               String ptrn)

      Schedules job for execution using local cron-based scheduling.
      Type Parameters:
        `R` - Type of the job result.
      Parameters:
        `job` - Not null job to schedule to run as a background cron-based job.
        `ptrn` - Scheduling pattern in UNIX cron format with optional prefix `{n1, n2}` where `n1` is delay of scheduling in seconds and `n2` is the number of execution. Both parameters are optional.
      Returns:
        Scheduled execution future.