Package org.jboss.resteasy.core

## Class AsynchronousDispatcher

- java.lang.Object
- - org.jboss.resteasy.core.SynchronousDispatcher
  - - org.jboss.resteasy.core.AsynchronousDispatcher

- All Implemented Interfaces:
    `Dispatcher`

      @Path("/")
      public class AsynchronousDispatcher
      extends SynchronousDispatcher

  Version:
    $Revision: 1 $
  Author:
    Bill Burke

- - ### Field Summary

    - ### Fields inherited from class org.jboss.resteasy.core.SynchronousDispatcher

      `bufferExceptionEntity, bufferExceptionEntityRead, defaultContextObjects, providerFactory, registry, requestPreprocessors, unwrappedExceptions`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AsynchronousDispatcher​(ResteasyProviderFactory providerFactory)` |
    `AsynchronousDispatcher​(ResteasyProviderFactory providerFactory, ResourceMethodRegistry registry)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `javax.ws.rs.core.Response` | `get​(long wait, String jobId)` |
    `void` | `invoke​(HttpRequest in, HttpResponse response, ResourceInvoker invoker)` | Invoke and write response.
    `void` | `invokeSuper​(HttpRequest in, HttpResponse response, ResourceInvoker invoker)` |
    `boolean` | `isAsynchrnousRequest​(HttpRequest in)` |
    `void` | `oneway​(HttpRequest request, HttpResponse response, ResourceInvoker invoker)` |
    `void` | `postJob​(HttpRequest request, HttpResponse response, ResourceInvoker invoker)` |
    `protected javax.ws.rs.core.Response` | `process​(long wait, String jobId, boolean eatJob)` |
    `javax.ws.rs.core.Response` | `readAndRemove​(long wait, String jobId)` |
    `void` | `remove​(String jobId)` |
    `void` | `setBasePath​(String basePath)` | Set the base path to find jobs.
    `void` | `setExecutor​(ExecutorService executor)` | Plug in your own executor to process requests.
    `void` | `setMaxCacheSize​(int maxCacheSize)` | Max response cache size default is 100.
    `void` | `setMaxWaitMilliSeconds​(long maxWaitMilliSeconds)` | Maximum wait time.
    `void` | `setThreadPoolSize​(int threadPoolSize)` | Fixed thread pool size of asynchronous delivery.
    `void` | `start()` |
    `void` | `stop()` |

    - ### Methods inherited from class org.jboss.resteasy.core.SynchronousDispatcher

      `addHttpPreprocessor, asynchronousDelivery, asynchronousDelivery, asynchronousExceptionDelivery, asynchronousExceptionDelivery, clearContextData, execute, getDefaultContextObjects, getInvoker, getProviderFactory, getRegistry, getUnwrappedExceptions, internalInvocation, invoke, invokePropagateNotFound, preprocess, preprocess, pushContextObjects, rethrow, unhandledAsynchronousException, writeException, writeException, writeResponse`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AsynchronousDispatcher

          public AsynchronousDispatcher​(ResteasyProviderFactory providerFactory)

    - #### AsynchronousDispatcher

          public AsynchronousDispatcher​(ResteasyProviderFactory providerFactory,
                                        ResourceMethodRegistry registry)

  - ### Method Detail

    - #### setMaxCacheSize

          public void setMaxCacheSize​(int maxCacheSize)

      Max response cache size default is 100.
      Parameters:
        `maxCacheSize` - max cache size

    - #### setMaxWaitMilliSeconds

          public void setMaxWaitMilliSeconds​(long maxWaitMilliSeconds)

      Maximum wait time. This overrides any wait query parameter.
      Parameters:
        `maxWaitMilliSeconds` - max wait time in millis

    - #### setBasePath

          public void setBasePath​(String basePath)

      Set the base path to find jobs.
      Parameters:
        `basePath` - base path

    - #### setThreadPoolSize

          public void setThreadPoolSize​(int threadPoolSize)

      Fixed thread pool size of asynchronous delivery.
      Parameters:
        `threadPoolSize` - thread pool size

    - #### setExecutor

          public void setExecutor​(ExecutorService executor)

      Plug in your own executor to process requests.
      Parameters:
        `executor` - executor service

    - #### start

          public void start()

    - #### stop

          public void stop()

    - #### remove

          @Path("{job-id}")
          @DELETE
          public void remove​(@PathParam("job-id")
                             String jobId)

    - #### readAndRemove

          @Path("{job-id}")
          @POST
          public javax.ws.rs.core.Response readAndRemove​(@QueryParam("wait") @DefaultValue("-1")
                                                         long wait,
                                                         @PathParam("job-id")
                                                         String jobId)

    - #### get

          @Path("{job-id}")
          @GET
          public javax.ws.rs.core.Response get​(@QueryParam("wait") @DefaultValue("-1")
                                               long wait,
                                               @PathParam("job-id")
                                               String jobId)

    - #### process

          protected javax.ws.rs.core.Response process​(long wait,
                                                      String jobId,
                                                      boolean eatJob)

    - #### isAsynchrnousRequest

          public boolean isAsynchrnousRequest​(HttpRequest in)

    - #### invokeSuper

          public void invokeSuper​(HttpRequest in,
                                  HttpResponse response,
                                  ResourceInvoker invoker)

    - #### invoke

          public void invoke​(HttpRequest in,
                             HttpResponse response,
                             ResourceInvoker invoker)

      Description copied from class: `SynchronousDispatcher`
      Invoke and write response.
      Overrides:
        `invoke` in class `SynchronousDispatcher`
      Parameters:
        `in` - http request
        `response` - http response
        `invoker` - resource invoker

    - #### postJob

          public void postJob​(HttpRequest request,
                              HttpResponse response,
                              ResourceInvoker invoker)

    - #### oneway

          public void oneway​(HttpRequest request,
                             HttpResponse response,
                             ResourceInvoker invoker)