= 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 canceled 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
link:access-control.html#capability_viewQueue[the 'View Queue' capability]
can see all queue entries.

== SCRIPTING
Intended for interactive use only.

== OPTIONS
--wide::
-w::
	Do not format the output to the terminal width (default of
	80 columns).

--by-queue::
-q::
	Group tasks by queue and print queue info.

== 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]

SEARCHBOX
---------
