Minion::Worker(3) 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.

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.

METHODS

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

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:

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.

register

  $worker = $worker->register;

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

unregister

  $worker = $worker->unregister;

Unregister worker.