NAME Minion::Backend::SQLite - SQLite backend for Minion job queue SYNOPSIS use Minion::Backend::SQLite; my $backend = Minion::Backend::SQLite->new('sqlite:test.db'); DESCRIPTION Minion::Backend::SQLite is a backend for Minion based on Mojo::SQLite. All necessary tables will be created automatically with a set of migrations named minion. If no connection string or :temp: is provided, the database will be created in a temporary directory. ATTRIBUTES Minion::Backend::SQLite inherits all attributes from Minion::Backend and implements the following new ones. sqlite my $sqlite = $backend->sqlite; $backend = $backend->sqlite(Mojo::SQLite->new); Mojo::SQLite object used to store all data. METHODS Minion::Backend::SQLite inherits all methods from Minion::Backend and implements the following new ones. new my $backend = Minion::Backend::SQLite->new; my $backend = Minion::Backend::SQLite->new(':temp:'); my $backend = Minion::Backend::SQLite->new('sqlite:test.db'); my $backend = Minion::Backend::SQLite->new->tap(sub { $_->sqlite->from_filename('C:\\foo\\bar.db') }); Construct a new Minion::Backend::SQLite object. dequeue my $job_info = $backend->dequeue($worker_id, 0.5); my $job_info = $backend->dequeue($worker_id, 0.5, {queues => ['important']}); Wait for 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: 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, {msg => 'Something went wrong!'}); Transition from active to failed state. 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, {msg => '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. 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. 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. 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. 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. BUGS Report any issues on the public bugtracker. AUTHOR Dan Book <dbook@cpan.org> COPYRIGHT AND LICENSE This software is Copyright (c) 2015 by Dan Book. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) SEE ALSO Minion, Mojo::SQLite