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

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

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

DESCRIPTION
-----------
Presents a table of the pending activity the Gerrit daemon
is currently performing, or 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 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
------
End-users may see a task in the queue only if they can also see
the project the task is associated with. Tasks operating on other
projects, or that do not have a specific project are hidden.

Members of the group 'Administrators', or any group that has been
granted the 'View Queue' capability can see all queue entries.

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

DISPLAY
-------

Task::
	Unique task identifier on this server.	May be passed into
	link:cmd-kill.html[kill] to cancel or terminate the task.
	Task identifiers have a period of 2^32-1, and start from
	a random value.

State::
	If running, blank.
+
If the task has completed, but has not yet been reaped, 'done'.
If the task has been killed, but has not yet halted or been removed
from the queue, 'killed'.
+
If the task is ready to execute but is waiting for an idle thread
in its associated thread pool, 'waiting'.
+
Otherwise the time (local to the server) that this task will begin
execution.

Command::
	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
	Task     State                 Command
	------------------------------------------------------------------------------
	7aae09b2 14:31:15.435          mirror dst1:/home/git/tools/gerrit.git
	9ad09d27 14:31:25.434          mirror dst2:/var/cache/tools/gerrit.git
	------------------------------------------------------------------------------
	  2 tasks
====

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