logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

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.

Description

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

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.

Methods

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

   run
         $worker->run(@ARGV);

       Run this command.

Name

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

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.

See Also

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

perl v5.40.0                                       2024-12-20               Minion::Command::minion::worker(3pm)

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

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.

See Also