Package org.springframework.batch.poller

# Interface Poller<T>

All Known Implementing Classes:
  `DirectPoller`

public interface Poller<T>
Interface for polling a `Callable` instance provided by the user. Use when you need to put something in the background (e.g. a remote invocation) and wait for the result, e.g.

     Poller<Result> poller = ...

     final long id = remoteService.execute(); // do something remotely

     Future<Result> future = poller.poll(new Callable<Result> {
         public Object call() {
               // Look for the result (null if not ready)
               return remoteService.get(id);
         }
     });

     Result result = future.get(1000L, TimeUnit.MILLISECONDS);

Author:
  Dave Syer, Mahmoud Ben Hassine

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Future<T>`
  `poll(Callable<T> callable)`
  Use the callable provided to poll for a non-null result.

- ## Method Details

  - ### poll

    Future<T> poll(Callable<T> callable) throws Exception
    Use the callable provided to poll for a non-null result. The callable might be executed multiple times searching for a result, but once either a result or an exception has been observed the polling stops.
    Parameters:
      `callable` - a `Callable` to use to retrieve a result
    Returns:
      a future which itself can be used to get the result
    Throws:
      `Exception` - allows for checked exceptions