Package io.ebean

Interface BackgroundExecutor


public interface BackgroundExecutor
Background executor service for executing of tasks asynchronously.

This service can be used to execute tasks in the background.

This service is managed by Ebean and will perform a clean shutdown waiting for background tasks to complete with a default 30 second timeout. Shutdown occurs prior to DataSource shutdown.

This also propagates MDC context from the current thread to the background task if defined.

  • Method Details

    • submit

      <T> Future<T> submit(Callable<T> task)
      Execute a callable task in the background returning the Future.
    • submit

      Future<?> submit(Runnable task)
      Execute a runnable task in the background returning the Future.
    • execute

      void execute(Runnable task)
      Execute a task in the background. Effectively the same as submit(Runnable) but returns void.
    • executePeriodically

      @Deprecated void executePeriodically(Runnable task, long delay, TimeUnit unit)
      Deprecated.
      Deprecated - migrate to scheduleWithFixedDelay(). Execute a task periodically with a fixed delay between each execution.

      For example, execute a runnable every minute.

      The delay is the time between executions no matter how long the task took. That is, this method has the same behaviour characteristics as ScheduledExecutorService.scheduleWithFixedDelay(Runnable, long, long, TimeUnit)

    • executePeriodically

      @Deprecated void executePeriodically(Runnable task, long initialDelay, long delay, TimeUnit unit)
      Deprecated.
      Deprecated - migrate to scheduleWithFixedDelay(). Execute a task periodically additionally with an initial delay different from delay.
    • scheduleWithFixedDelay

      ScheduledFuture<?> scheduleWithFixedDelay(Runnable task, long initialDelay, long delay, TimeUnit unit)
      Execute a task periodically with a given delay.
      Parameters:
      task - the task to execute
      initialDelay - the time to delay first execution
      delay - the delay between the termination of one execution and the commencement of the next
      unit - the time unit of the initialDelay and delay parameters
      Returns:
      a ScheduledFuture representing pending completion of the series of repeated tasks. The future's get() method will never return normally, and will throw an exception upon task cancellation or abnormal termination of a task execution.
    • scheduleAtFixedRate

      ScheduledFuture<?> scheduleAtFixedRate(Runnable task, long initialDelay, long period, TimeUnit unit)
      Execute a task periodically with a given period.

      If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.

      Parameters:
      task - the task to execute
      initialDelay - the time to delay first execution
      period - the period between successive executions
      unit - the time unit of the initialDelay and period parameters
      Returns:
      a ScheduledFuture representing pending completion of the series of repeated tasks. The future's get() method will never return normally, and will throw an exception upon task cancellation or abnormal termination of a task execution.
    • schedule

      ScheduledFuture<?> schedule(Runnable task, long delay, TimeUnit unit)
      Schedules a Runnable for one-shot action that becomes enabled after the given delay.
      Returns:
      a ScheduledFuture representing pending completion of the task and whose get() method will return null upon completion
    • schedule

      <V> ScheduledFuture<V> schedule(Callable<V> task, long delay, TimeUnit unit)
      Schedules a Callable for one-shot action that becomes enabled after the given delay.
      Returns:
      a ScheduledFuture that can be used to extract result or cancel