NAME
Qudo - simple and extensible job queue manager
SYNOPSIS
# enqueue job:
use Qudo;
my $qudo = Qudo->new(
    driver_class => 'Skinny', # optional.
    databases => [+{
        dsn      => 'dbi:SQLite:/tmp/qudo.db',
        username => '',
        password => '',
    }],
);
$qudo->enqueue("Worker::Test", { arg => 'arg', uniqkey => 'uniqkey'});
# do work:
use Qudo;
my $qudo2 = Qudo->new(
    driver_class => 'Skinny', # optional.
    databases => [+{
        dsn      => 'dbi:SQLite:/tmp/qudo.db',
        username => '',
        password => '',
    }],
    manager_abilities => [qw/Worker::Test/],
);
$qudo2->work(); # boot manager
# work work work!
DESCRIPTION
Qudo is simple and extensible job queue manager system.
Your application can insert job into DB ,that is managed by Qudo. And Your application can get & execute job by Qudo worker. Qudo corresponds to deal with DB as MySQL and SQLite.
If you add Hook Point around job's working method , you can add it easily and many point of work milestone. Qudo is consided about adding Hook Point Flexibility.
USEAGE
Qudo->new( %args )
Optional members of %args are:
driver_classset Qudo::Driver::(Skinny|DBI). default driver_class is Skinny.
databasesAn arrayref of database information. Qudo can use multiple databases, such that if any of them are unavailable, the worker will search for appropriate jobs in the other databases automatically.
Each member of the
databasesvalue should be a hashref containing either:dsnThe database DSN for this database.
usernameThe username to use when connecting to this database.
passwordThe password to use when connecting to this database.
manager_abilitiesAn arrayref of worker class name. please specify it when moving it by the usage of worker. it is not necessary to specify it for the usage of enqueue client.
find_job_limit_sizeThe maximum number in which it looks for job by one processing. Qudo default limit 30. please specify it when moving it by the usage of worker. it is not necessary to specify it for the usage of enqueue client.
retry_secondsThe number of seconds after which to try reconnecting to apparently dead databases. If not given, Qudo will retry connecting to databases after 30 seconds.
default_hooksAn arrayref of hook class name.
default_pluginsAn arrayref of plugin class name.
Qudo->manager
get Qudo::Manager instance. see Qudo::Manager
Qudo->enqueue( %args )
see Qudo::Manager enqueue method.
Qudo->work( %args )
Find and perform any jobs $manager can do, forever.
When no job is available, the working process will sleep for $delay seconds (or 5, if not specified) before looking again.
Qudo->job_count( $funcname, $dsn )
Returns a job count infomations. The required arguments :
funcnamethe name of the function or a reference to an array of functions.
dsnThe database DSN for job count target database.
Qudo->exception_list( $args, $dsn )
Returns a job exception infomations. Optional members of $args are:
args
limit
get exception log limit size. default by 10.
offset
get exception log offset size. default by 0.
dsnThe database DSN for job count target database.
Qudo->job_status_list( $args, $dsn )
Returns a job exception infomations. Optional members of $args are:
args
limit
get job_status log limit size. default by 10.
offset
get job_status log offset size. default by 0.
dsnThe database DSN for job count target database.
REPOS
http://github.com/nekokak/qudo/tree/master
AUTHOR
Atsushi Kobayashi <nekokak _at_ gmail dot com>
Masaru Hoshino <masartz _at_ gmail dot com>
COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.