---
name: "Minion::Command::minion::worker"
section: "3pm"
platform: "linux"
package: "libminion-perl"
version: "10.31+dfsg-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Minion::Command::minion::worker"
---

# Minion::Command::minion::worker(3pm)

Minion worker command

## NAME

Minion::Command::minion::worker - Minion worker command

## SYNOPSIS

```
  Usage: APPLICATION minion worker [OPTIONS]
    ./myapp.pl minion worker
    ./myapp.pl minion worker -m production -I 15 -C 5 -R 3600 -j 10
    ./myapp.pl minion worker -q important -q default
  Options:
    -C, --command-interval <seconds>     Worker remote control command interval,
                                         defaults to 10
    -D, --dequeue-timeout <seconds>      Maximum amount of time to wait for
                                         jobs, defaults to 5
    -h, --help                           Show this summary of available options
        --home <path>                    Path to home directory of your
                                         application, defaults to the value of
                                         MOJO_HOME or auto-detection
    -I, --heartbeat-interval <seconds>   Heartbeat interval, defaults to 300
    -j, --jobs <number>                  Maximum number of jobs to perform
                                         parallel in forked worker processes
                                         (not including spare processes),
                                         defaults to 4
    -m, --mode <name>                    Operating mode for your application,
                                         defaults to the value of
                                         MOJO_MODE/PLACK_ENV or "development"
    -q, --queue <name>                   One or more queues to get jobs from,
                                         defaults to "default"
    -R, --repair-interval <seconds>      Repair interval, up to half of this
                                         value can be subtracted randomly to
                                         make sure not all workers repair at the
                                         same time, defaults to 21600 (6 hours)
    -s, --spare <number>                 Number of spare worker processes to
                                         reserve for high priority jobs,
                                         defaults to 1
    -S, --spare-min-priority <number>    Minimum priority of jobs to use spare
                                         worker processes for, defaults to 1
```

## DESCRIPTION

Minion::Command::minion::worker starts a Minion worker. You can have as many workers as you like.

## WORKER SIGNALS

The Minion::Command::minion::worker process can be controlled at runtime with the following signals.

### INT, TERM

Stop gracefully after finishing the current jobs.

### QUIT

Stop immediately without finishing the current jobs.

## JOB SIGNALS

The job processes spawned by the Minion::Command::minion::worker process can be controlled at runtime with the following signals.

### INT, TERM

This signal starts out with the operating system default and allows for jobs to install a custom signal handler to stop gracefully.

### USR1, USR2

These signals start out being ignored and allow for jobs to install custom signal handlers.

## REMOTE CONTROL COMMANDS

The Minion::Command::minion::worker process can be controlled at runtime through Minion::Command::minion::job, from anywhere in the network, by broadcasting the following remote control commands.

### jobs

```
  $ ./myapp.pl minion job -b jobs -a '[10]'
  $ ./myapp.pl minion job -b jobs -a '[10]' 23
```

Instruct one or more workers to change the number of jobs to perform concurrently. Setting this value to `0` will effectively pause the worker. That means all current jobs will be finished, but no new ones accepted, until the number is increased again.

### kill

```
  $ ./myapp.pl minion job -b kill -a '["INT", 10025]'
  $ ./myapp.pl minion job -b kill -a '["INT", 10025]' 23
```

Instruct one or more workers to send a signal to a job that is currently being performed. This command will be ignored by workers that do not have a job matching the id. That means it is safe to broadcast this command to all workers.

### stop

```
  $ ./myapp.pl minion job -b stop -a '[10025]'
  $ ./myapp.pl minion job -b stop -a '[10025]' 23
```

Instruct one or more workers to stop a job that is currently being performed immediately. This command will be ignored by workers that do not have a job matching the id. That means it is safe to broadcast this command to all workers.

## ATTRIBUTES

Minion::Command::minion::worker inherits all attributes from Mojolicious::Command and implements the following new ones.

### description

```
  my $description = $worker->description;
  $worker         = $worker->description('Foo');
```

Short description of this command, used for the command list.

### usage

```
  my $usage = $worker->usage;
  $worker   = $worker->usage('Foo');
```

Usage information for this command, used for the help screen.

## METHODS

Minion::Command::minion::worker inherits all methods from Mojolicious::Command and implements the following new ones.

### run

```
  $worker->run(@ARGV);
```

Run this command.

## SEE ALSO

Minion, Minion::Guide, \<https://minion.pm\>, Mojolicious::Guides, \<https://mojolicious.org\>.
