Package com.google.gerrit.server.git
Class WorkQueue
- java.lang.Object
-
- com.google.gerrit.server.git.WorkQueue
-
public class WorkQueue extends Object
Delayed execution of tasks using a background thread pool.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceWorkQueue.CancelableRunnableRunnable needing to know it was canceled.static interfaceWorkQueue.CanceledWhileRunningBase 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 classWorkQueue.Lifecyclestatic classWorkQueue.ProjectTask<V>Same as Task class, but with a reference to ProjectRunnable, used to retrieve the project name from the operation queuedstatic classWorkQueue.Task<V>A wrapper around a scheduled Runnable, as maintained in the queue.static classWorkQueue.WorkQueueModule
-
Constructor Summary
Constructors Constructor Description WorkQueue(IdGenerator idGenerator, int defaultThreadPoolSize, com.google.gerrit.metrics.MetricMaker metrics)Constructor to allow binding the WorkQueue more explicitly in a vhost setup.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ScheduledExecutorServicecreateQueue(int poolsize, String queueName)Create a new executor queue.ScheduledThreadPoolExecutorcreateQueue(int poolsize, String queueName, boolean withMetrics)Create a new executor queue, with default priority, optionally with metrics.ScheduledThreadPoolExecutorcreateQueue(int poolsize, String queueName, int threadPriority, boolean withMetrics)Create a new executor queue, optionally with metrics.ScheduledExecutorServicegetDefaultQueue()Get the default work queue, for miscellaneous tasks.ScheduledThreadPoolExecutorgetExecutor(String queueName)WorkQueue.Task<?>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.voidscheduleAtFixedRate(Runnable command, ScheduleConfig.Schedule schedule)Executes a periodic command at a fixed schedule on the default queue.
-
-
-
Constructor Detail
-
WorkQueue
public WorkQueue(IdGenerator idGenerator, int defaultThreadPoolSize, com.google.gerrit.metrics.MetricMaker metrics)
Constructor to allow binding the WorkQueue more explicitly in a vhost setup.
-
-
Method Detail
-
getDefaultQueue
public ScheduledExecutorService getDefaultQueue()
Get the default work queue, for miscellaneous tasks.
-
createQueue
public ScheduledExecutorService createQueue(int poolsize, String queueName)
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
public ScheduledThreadPoolExecutor createQueue(int poolsize, String queueName, boolean withMetrics)
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
public void scheduleAtFixedRate(Runnable command, ScheduleConfig.Schedule schedule)
Executes a periodic command at a fixed schedule on the default queue.
-
getTasks
public List<WorkQueue.Task<?>> getTasks()
Get all of the tasks currently scheduled in any work queue.
-
getTaskInfos
public <T> List<T> getTaskInfos(TaskInfoFactory<T> factory)
-
getTask
public WorkQueue.Task<?> getTask(int id)
Locate a task by its unique id, null if no task matches.
-
getExecutor
public ScheduledThreadPoolExecutor getExecutor(String queueName)
-
-