Skip to content
Snippets Groups Projects
Commit 9dbabdec authored by akwizgran's avatar akwizgran
Browse files

Document the contract of DatabaseExecutor.

parent 40095619
No related branches found
No related tags found
No related merge requests found
......@@ -10,7 +10,13 @@ import java.lang.annotation.Target;
import com.google.inject.BindingAnnotation;
/** Annotation for injecting the executor for database tasks. */
/**
* Annotation for injecting the executor for database tasks.
* <p>
* The contract of this executor is that tasks are executed in the order
* they're submitted, tasks are not executed concurrently, and submitting a
* task will never block.
*/
@BindingAnnotation
@Target({ FIELD, METHOD, PARAMETER })
@Retention(RUNTIME)
......
......@@ -28,7 +28,7 @@ public class CryptoModule extends AbstractModule {
private final ExecutorService cryptoExecutor;
public CryptoModule() {
// The queue is unbounded, so tasks can be dependent
// Use an unbounded queue
BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>();
// Discard tasks that are submitted during shutdown
RejectedExecutionHandler policy =
......@@ -38,6 +38,7 @@ public class CryptoModule extends AbstractModule {
60, SECONDS, queue, policy);
}
@Override
protected void configure() {
bind(CryptoComponent.class).to(
CryptoComponentImpl.class).in(Singleton.class);
......
......@@ -29,7 +29,7 @@ public class DatabaseModule extends AbstractModule {
private final ExecutorService databaseExecutor;
public DatabaseModule() {
// The queue is unbounded, so tasks can be dependent
// Use an unbounded queue
BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>();
// Discard tasks that are submitted during shutdown
RejectedExecutionHandler policy =
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment