Package com.google.gerrit.server.git
Class WorkQueue
java.lang.Object
com.google.gerrit.server.git.WorkQueue
Delayed execution of tasks using a background thread pool.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Runnable needing to know it was canceled.static interface
Base interface handles the case when task was canceled before actual execution and in case it was started cancel method is not called yet the task itself will be destroyed anyway (it will result in resource opening errors).static class
static class
Same as Task class, but with a reference to ProjectRunnable, used to retrieve the project name from the operation queuedstatic class
A wrapper around a scheduled Runnable, as maintained in the queue.static interface
To register a TaskListener, which will be called directly before Tasks run, and directly after they complete, bind the TaskListener like this:static class
-
Constructor Summary
ConstructorsConstructorDescriptionWorkQueue
(IdGenerator idGenerator, int defaultThreadPoolSize, com.google.gerrit.metrics.MetricMaker metrics, PluginMapContext<WorkQueue.TaskListener> listeners) Constructor to allow binding the WorkQueue more explicitly in a vhost setup. -
Method Summary
Modifier and TypeMethodDescriptioncreateQueue
(int poolsize, String queueName) Create a new executor queue.createQueue
(int poolsize, String queueName, boolean withMetrics) Create a new executor queue, with default priority, optionally with metrics.createQueue
(int poolsize, String queueName, int threadPriority, boolean withMetrics) Create a new executor queue, optionally with metrics.Get the default work queue, for miscellaneous tasks.getExecutor
(String queueName) getTask
(int id) Locate a task by its unique id, null if no task matches.<T> List<T>
getTaskInfos
(TaskInfoFactory<T> factory) List<WorkQueue.Task<?>>
getTasks()
Get all of the tasks currently scheduled in any work queue.void
scheduleAtFixedRate
(Runnable command, ScheduleConfig.Schedule schedule) Executes a periodic command at a fixed schedule on the default queue.
-
Constructor Details
-
WorkQueue
public WorkQueue(IdGenerator idGenerator, int defaultThreadPoolSize, com.google.gerrit.metrics.MetricMaker metrics, PluginMapContext<WorkQueue.TaskListener> listeners) Constructor to allow binding the WorkQueue more explicitly in a vhost setup.
-
-
Method Details
-
getDefaultQueue
Get the default work queue, for miscellaneous tasks. -
createQueue
Create a new executor queue.Creates a new executor queue without associated metrics. This method is suitable for use by plugins.
If metrics are needed, use
createQueue(int, String, int, boolean)
instead.- Parameters:
poolsize
- the size of the pool.queueName
- the name of the queue.
-
createQueue
Create a new executor queue, with default priority, optionally with metrics.Creates a new executor queue, optionally with associated metrics. Metrics should not be requested for queues created by plugins.
- Parameters:
poolsize
- the size of the pool.queueName
- the name of the queue.withMetrics
- whether to create metrics.
-
createQueue
public ScheduledThreadPoolExecutor createQueue(int poolsize, String queueName, int threadPriority, boolean withMetrics) Create a new executor queue, optionally with metrics.Creates a new executor queue, optionally with associated metrics. Metrics should not be requested for queues created by plugins.
- Parameters:
poolsize
- the size of the pool.queueName
- the name of the queue.threadPriority
- thread priority.withMetrics
- whether to create metrics.
-
scheduleAtFixedRate
Executes a periodic command at a fixed schedule on the default queue. -
getTasks
Get all of the tasks currently scheduled in any work queue. -
getTaskInfos
-
getTask
Locate a task by its unique id, null if no task matches. -
getExecutor
-