NAME Minion::Backend::Pg91 - PostgreSQL 9.1 backend SYNOPSIS use Minion::Backend::Pg91; my $backend = Minion::Backend::Pg91->new('postgresql://postgres@/test'); DESCRIPTION Minion::Backend::Pg91 is a backend for Minion based on Minion::Backend::Pg . All necessary tables will be created automatically with a set of migrations named `minion'. Note that this backend only supports PostgreSQL 9.1. ATTRIBUTES Minion::Backend::Pg91 inherits all attributes from Minion::Backend and implements the following new ones. pg my $pg = $backend->pg; $backend = $backend->pg(Mojo::Pg->new); Mojo::Pg object used to store all data. METHODS Minion::Backend::Pg91 inherits all methods from Minion::Backend 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. 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. 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 Minion. 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. job_info my $job_info = $backend->job_info($job_id); Get information about a job, or return `undef' if job does not exist. # 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. 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. new my $backend = Minion::Backend::Pg91->new('postgresql://postgres@/test'); Construct a new Minion::Backend::Pg91 object. 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. remove_job my $bool = $backend->remove_job($job_id); Remove `failed', `finished' or `inactive' job from queue. repair $backend->repair; Repair worker registry and job queue if necessary. reset $backend->reset; Reset job queue. 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. 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. 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. worker_info my $worker_info = $backend->worker_info($worker_id); Get information about a worker, or return `undef' if worker does not exist. # 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, Minion::Backend::Pg, Mojolicious::Guides, http://mojolicious.org.