Code Examples

ExecutorServiceFactory

In the configuration class of your DropWizard project, declare a field for configuring the executor. If your executor will process jobs, you could name it jobQueue

public class MyAppConfiguration extends Configuration {

    private ExecutorServiceFactory jobQueue;

    public void setJobQueue(ExecutorServiceFactory jobQueue)
        this.jobQueue = jobQueue;
    }

    public ExecutorServiceFactory getJobQueue()
        return jobQueue;
    }

// ...
}

In the configuration file you can now configure the jobQueue as follows:

jobQueue:
    nameFormat: "job-queue-thread-%d"

    maxQueueSize: 4
    # Number of threads will be increased when maxQueueSize is exceeded.
    minThreads: 2
    # No more than maxThreads will be created though
    maxThreads: 10
    # Threads will die after 60 seconds of idleness
    keepAliveTime: 60 seconds

In your Application class' run method you can finally create the actual executor:

// inside run()
ExecutorService executor = configuration.getJobQueue().build(environment);

and pass it to the resources or other components that need to use it.