Provided by: libminion-perl_7.05-1_all bug

NAME

       Minion::Worker - Minion worker

SYNOPSIS

         use Minion::Worker;

         my $worker = Minion::Worker->new(minion => $minion);

DESCRIPTION

       Minion::Worker performs jobs for Minion.

EVENTS

       Minion::Worker inherits all events from Mojo::EventEmitter and can emit the following new
       ones.

   dequeue
         $worker->on(dequeue => sub {
           my ($worker, $job) = @_;
           ...
         });

       Emitted in the worker process after a job has been dequeued.

         $worker->on(dequeue => sub {
           my ($worker, $job) = @_;
           my $id = $job->id;
           say "Job $id has been dequeued.";
         });

ATTRIBUTES

       Minion::Worker implements the following attributes.

   commands
         my $commands = $worker->commands;
         $worker      = $worker->commands({jobs => sub {...}});

       Registered worker remote control commands.

   id
         my $id  = $worker->id;
         $worker = $worker->id($id);

       Worker id.

   minion
         my $minion = $worker->minion;
         $worker    = $worker->minion(Minion->new);

       Minion object this worker belongs to.

   status
         my $status = $worker->status;
         $worker    = $worker->status({queues => ['default', 'important']);

       Status information to share every time "register" is called.

METHODS

       Minion::Worker inherits all methods from Mojo::EventEmitter and implements the following
       new ones.

   add_command
         $worker = $worker->add_command(jobs => sub {...});

       Register a worker remote control command.

         $worker->add_command(foo => sub {
           my ($worker, @args) = @_;
           ...
         });

   dequeue
         my $job = $worker->dequeue(0.5);
         my $job = $worker->dequeue(0.5 => {queues => ['important']});

       Wait a given amount of time in seconds for a job, dequeue Minion::Job object and
       transition from "inactive" to "active" state, or return "undef" if queues were empty.

       These options are currently available:

       id
           id => '10023'

         Dequeue a specific job.

       queues
           queues => ['important']

         One or more queues to dequeue jobs from, defaults to "default".

   info
         my $info = $worker->info;

       Get worker information.

         # Check worker host
         my $host = $worker->info->{host};

       These fields are currently available:

       host
           host => 'localhost'

         Worker host.

       jobs
           jobs => ['10023', '10024', '10025', '10029']

         Ids of jobs the worker is currently processing.

       notified
           notified => 784111777

         Epoch time worker sent the last heartbeat.

       pid
           pid => 12345

         Process id of worker.

       started
           started => 784111777

         Epoch time worker was started.

       status
           status => {queues => ['default', 'important']}

         Hash reference with whatever status information the worker would like to share.

   process_commands
         $worker = $worker->process_commands;

       Process worker remote control commands.

   register
         $worker = $worker->register;

       Register worker or send heartbeat to show that this worker is still alive.

   unregister
         $worker = $worker->unregister;

       Unregister worker.

SEE ALSO

       Minion, Mojolicious::Guides, <http://mojolicious.org>.