GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MINION::BACKEND (3)

.ds Aq ’

NAME

Minion::Backend - Backend base class

CONTENTS

SYNOPSIS



  package Minion::Backend::MyBackend;
  use Mojo::Base Minion::Backend;

  sub dequeue           {...}
  sub enqueue           {...}
  sub fail_job          {...}
  sub finish_job        {...}
  sub job_info          {...}
  sub list_jobs         {...}
  sub list_workers      {...}
  sub register_worker   {...}
  sub remove_job        {...}
  sub repair            {...}
  sub reset             {...}
  sub retry_job         {...}
  sub stats             {...}
  sub unregister_worker {...}
  sub worker_info       {...}



DESCRIPTION

Minion::Backend is an abstract base class for Minion backends, like Minion::Backend::Pg.

ATTRIBUTES

Minion::Backend implements the following attributes.

    minion



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



Minion object this backend belongs to.

METHODS

Minion::Backend inherits all methods from Mojo::Base and implements the following new ones.

    dequeue



  my $job_info = $backend->dequeue($worker_id, 0.5);
  my $job_info = $backend->dequeue($worker_id, 0.5, {queues => [important]});



Wait a given amount of time in seconds for a job, dequeue it and transition from inactive to active state, or return undef if queues were empty. Meant to be overloaded in a subclass.

These options are currently available:
queues


  queues => [important]



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

These fields are currently available:
args


  args => [foo, bar]



Job arguments.

id


  id => 10023



Job ID.

retries


  retries => 3



Number of times job has been retried.

task


  task => foo



Task name.

    enqueue



  my $job_id = $backend->enqueue(foo);
  my $job_id = $backend->enqueue(foo => [@args]);
  my $job_id = $backend->enqueue(foo => [@args] => {priority => 1});



Enqueue a new job with inactive state. Meant to be overloaded in a subclass.

These options are currently available:
attempts


  attempts => 25



Number of times performing this job will be attempted, defaults to 1.

delay


  delay => 10



Delay job for this many seconds (from now).

priority


  priority => 5



Job priority, defaults to 0.

queue


  queue => important



Queue to put job in, defaults to default.

    fail_job



  my $bool = $backend->fail_job($job_id, $retries);
  my $bool = $backend->fail_job($job_id, $retries, Something went wrong!);
  my $bool = $backend->fail_job(
    $job_id, $retries, {whatever => Something went wrong!});



Transition from active to failed state, and if there are attempts remaining, transition back to inactive with a delay based on backoff in Minion. Meant to be overloaded in a subclass.

    finish_job



  my $bool = $backend->finish_job($job_id, $retries);
  my $bool = $backend->finish_job($job_id, $retries, All went well!);
  my $bool = $backend->finish_job(
    $job_id, $retries, {whatever => All went well!});



Transition from active to finished state. Meant to be overloaded in a subclass.

    job_info



  my $job_info = $backend->job_info($job_id);



Get information about a job, or return undef if job does not exist. Meant to be overloaded in a subclass.



  # Check job state
  my $state = $backend->job_info($job_id)->{state};

  # Get job result
  my $result = $backend->job_info($job_id)->{result};



These fields are currently available:
args


  args => [foo, bar]



Job arguments.

attempts


  attempts => 25



Number of times performing this job will be attempted, defaults to 1.

created


  created => 784111777



Time job was created.

delayed


  delayed => 784111777



Time job was delayed to.

finished


  finished => 784111777



Time job was finished.

priority


  priority => 3



Job priority.

queue


  queue => important



Queue name.

result


  result => All went well!



Job result.

retried


  retried => 784111777



Time job has been retried.

retries


  retries => 3



Number of times job has been retried.

started


  started => 784111777



Time job was started.

state


  state => inactive



Current job state, usually active, failed, finished or inactive.

task


  task => foo



Task name.

worker


  worker => 154



Id of worker that is processing the job.

    list_jobs



  my $batch = $backend->list_jobs($offset, $limit);
  my $batch = $backend->list_jobs($offset, $limit, {state => inactive});



Returns the same information as job_info but in batches. Meant to be overloaded in a subclass.

These options are currently available:
state


  state => inactive



List only jobs in this state.

task


  task => test



List only jobs for this task.

    list_workers



  my $batch = $backend->list_workers($offset, $limit);



Returns the same information as worker_info but in batches. Meant to be overloaded in a subclass.

    register_worker



  my $worker_id = $backend->register_worker;
  my $worker_id = $backend->register_worker($worker_id);



Register worker or send heartbeat to show that this worker is still alive. Meant to be overloaded in a subclass.

    remove_job



  my $bool = $backend->remove_job($job_id);



Remove failed, finished or inactive job from queue. Meant to be overloaded in a subclass.

    repair



  $backend->repair;



Repair worker registry and job queue if necessary. Meant to be overloaded in a subclass.

    reset



  $backend->reset;



Reset job queue. Meant to be overloaded in a subclass.

    retry_job



  my $bool = $backend->retry_job($job_id, $retries);
  my $bool = $backend->retry_job($job_id, $retries, {delay => 10});



Transition from failed or finished state back to inactive, already inactive jobs may also be retried to change options. Meant to be overloaded in a subclass.

These options are currently available:
delay


  delay => 10



Delay job for this many seconds (from now).

priority


  priority => 5



Job priority.

queue


  queue => important



Queue to put job in.

    stats



  my $stats = $backend->stats;



Get statistics for jobs and workers. Meant to be overloaded in a subclass.

These fields are currently available:
active_jobs


  active_jobs => 100



Number of jobs in active state.

active_workers


  active_workers => 100



Number of workers that are currently processing a job.

failed_jobs


  failed_jobs => 100



Number of jobs in failed state.

finished_jobs


  finished_jobs => 100



Number of jobs in finished state.

inactive_jobs


  inactive_jobs => 100



Number of jobs in inactive state.

inactive_workers


  inactive_workers => 100



Number of workers that are currently not processing a job.

    unregister_worker



  $backend->unregister_worker($worker_id);



Unregister worker. Meant to be overloaded in a subclass.

    worker_info



  my $worker_info = $backend->worker_info($worker_id);



Get information about a worker, or return undef if worker does not exist. Meant to be overloaded in a subclass.



  # Check worker host
  my $host = $backend->worker_info($worker_id)->{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



Last time worker sent a heartbeat.

pid


  pid => 12345



Process id of worker.

started


  started => 784111777



Time worker was started.

SEE ALSO

Minion, Mojolicious::Guides, <http://mojolicious.org>.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MINION::BACKEND (3) 2016-01-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.