gerrit show-queue
=================

NAME
----
gerrit show-queue - Display the background work queues, including replication

SYNOPSIS
--------
[verse]
'ssh' -p <port> <host> 'gerrit show-queue'

DESCRIPTION
-----------
Presents a table of the pending background activity the Gerrit
daemon will perform in the near future.  Gerrit contains an internal
scheduler, similar to cron, that it uses to queue and dispatch both
short and long term background activity.

Tasks that are completed or cancelled exit the queue very quickly
once they enter this state, but it can be possible to observe tasks
in these states.

ACCESS
------
Caller must be a member of the privileged 'Administrators' group.

SCRIPTING
---------
Intended for interactive use only.

DISPLAY
-------

S::
	Current state of the task.  States are:
+
* `D`: task is complete, but hasn't released its worker yet.
* `C`: task has been cancelled, but hasn't left the queue yet.
* `R`: task is actively running on a worker thread.
* `W`: task is ready to run, waiting for a worker thread.
* `S`: task is sleeping until its Start time.

Start::
	Time (local to the server) that this task will begin
	execution.  Blank if the task is completed, running, or
	ready to run but is waiting for a worker thread to become
	available.

Task::
	Short text description of the task that will be performed
	at the given time.

EXAMPLES
--------

The following queue contains two tasks scheduled to replicate the
`tools/gerrit.git` project to two different remote systems, `dst1`
and `dst2`:

====
	$ ssh -p 29418 review.example.com gerrit show-queue
	 S  Start         Task
	--------------------------------------------------------------
	 S  14:31:15.435  mirror dst1:/home/git/tools/gerrit.git
	 S  14:31:25.434  mirror dst2:/var/cache/tools/gerrit.git
	--------------------------------------------------------------
	  2 tasks
====

DEFECTS
-------
There is a small race condition where tasks may disappear from the
output of this command while they transition from the ready/waiting
(`W`) or sleeping (`S`) state to the running (`R`) state.

GERRIT
------
Part of link:index.html[Gerrit Code Review]
