|
NAMEMinion::Backend - Backend base classSYNOPSISpackage Minion::Backend::MyBackend; use Mojo::Base 'Minion::Backend'; sub broadcast {...} sub dequeue {...} sub enqueue {...} sub fail_job {...} sub finish_job {...} sub history {...} sub list_jobs {...} sub list_locks {...} sub list_workers {...} sub lock {...} sub note {...} sub receive {...} sub register_worker {...} sub remove_job {...} sub repair {...} sub reset {...} sub retry_job {...} sub stats {...} sub unlock {...} sub unregister_worker {...} DESCRIPTIONMinion::Backend is an abstract base class for Minion backends, like Minion::Backend::Pg.ATTRIBUTESMinion::Backend implements the following attributes.minionmy $minion = $backend->minion; $backend = $backend->minion(Minion->new); Minion object this backend belongs to. Note that this attribute is weakened. METHODSMinion::Backend inherits all methods from Mojo::Base and implements the following new ones.auto_retry_jobmy $bool = $backend->auto_retry_job($job_id, $retries, $attempts); Automatically "retry" job with "backoff" in Minion if there are attempts left, used to implement backends like Minion::Backend::Pg. broadcastmy $bool = $backend->broadcast('some_command'); my $bool = $backend->broadcast('some_command', [@args]); my $bool = $backend->broadcast('some_command', [@args], [$id1, $id2, $id3]); Broadcast remote control command to one or more workers. Meant to be overloaded in a subclass. dequeuemy $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:
These fields are currently available:
enqueuemy $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:
fail_jobmy $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 with or without a result, 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_jobmy $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 with or without a result. Meant to be overloaded in a subclass. historymy $history = $backend->history; Get history information for job queue. Meant to be overloaded in a subclass. These fields are currently available:
list_jobsmy $results = $backend->list_jobs($offset, $limit); my $results = $backend->list_jobs($offset, $limit, {states => ['inactive']}); Returns the information about jobs in batches. Meant to be overloaded in a subclass. # Get the total number of results (without limit) my $num = $backend->list_jobs(0, 100, {queues => ['important']})->{total}; # Check job state my $results = $backend->list_jobs(0, 1, {ids => [$job_id]}); my $state = $results->{jobs}[0]{state}; # Get job result my $results = $backend->list_jobs(0, 1, {ids => [$job_id]}); my $result = $results->{jobs}[0]{result}; These options are currently available:
These fields are currently available:
list_locksmy $results = $backend->list_locks($offset, $limit); my $results = $backend->list_locks($offset, $limit, {names => ['foo']}); Returns information about locks in batches. Meant to be overloaded in a subclass. # Get the total number of results (without limit) my $num = $backend->list_locks(0, 100, {names => ['bar']})->{total}; # Check expiration time my $results = $backend->list_locks(0, 1, {names => ['foo']}); my $expires = $results->{locks}[0]{expires}; These options are currently available:
These fields are currently available:
list_workersmy $results = $backend->list_workers($offset, $limit); my $results = $backend->list_workers($offset, $limit, {ids => [23]}); Returns information about workers in batches. Meant to be overloaded in a subclass. # Get the total number of results (without limit) my $num = $backend->list_workers(0, 100)->{total}; # Check worker host my $results = $backend->list_workers(0, 1, {ids => [$worker_id]}); my $host = $results->{workers}[0]{host}; These options are currently available:
These fields are currently available:
lockmy $bool = $backend->lock('foo', 3600); my $bool = $backend->lock('foo', 3600, {limit => 20}); Try to acquire a named lock that will expire automatically after the given amount of time in seconds. An expiration time of 0 can be used to check if a named lock already exists without creating one. Meant to be overloaded in a subclass. These options are currently available:
notemy $bool = $backend->note($job_id, {mojo => 'rocks', minion => 'too'}); Change one or more metadata fields for a job. Setting a value to "undef" will remove the field. Meant to be overloaded in a subclass. receivemy $commands = $backend->receive($worker_id); Receive remote control commands for worker. Meant to be overloaded in a subclass. register_workermy $worker_id = $backend->register_worker; my $worker_id = $backend->register_worker($worker_id); my $worker_id = $backend->register_worker( $worker_id, {status => {queues => ['default', 'important']}}); Register worker or send heartbeat to show that this worker is still alive. Meant to be overloaded in a subclass. These options are currently available:
remove_jobmy $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({all => 1}); Reset job queue. Meant to be overloaded in a subclass. These options are currently available:
retry_jobmy $bool = $backend->retry_job($job_id, $retries); my $bool = $backend->retry_job($job_id, $retries, {delay => 10}); Transition job back to "inactive" state, already "inactive" jobs may also be retried to change options. Meant to be overloaded in a subclass. These options are currently available:
statsmy $stats = $backend->stats; Get statistics for the job queue. Meant to be overloaded in a subclass. These fields are currently available:
unlockmy $bool = $backend->unlock('foo'); Release a named lock. Meant to be overloaded in a subclass. unregister_worker$backend->unregister_worker($worker_id); Unregister worker. Meant to be overloaded in a subclass. SEE ALSOMinion, Minion::Guide, <https://minion.pm>, Mojolicious::Guides, <https://mojolicious.org>.
Visit the GSP FreeBSD Man Page Interface. |