Home

Awesome

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:

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 :

Qudo->exception_list( $args, $dsn )

Returns a job exception infomations. Optional members of $args are:

Qudo->job_status_list( $args, $dsn )

Returns a job exception infomations. Optional members of $args are:

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.