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 Detail

      • 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.
      • 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