• Stars
    star
    39
  • Rank 679,198 (Top 14 %)
  • Language
    Perl
  • License
    Other
  • Created over 15 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

job queue system

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_class

    set Qudo::Driver::(Skinny|DBI). default driver_class is Skinny.

  • databases

    An 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 databases value should be a hashref containing either:

    • dsn

      The database DSN for this database.

    • username

      The username to use when connecting to this database.

    • password

      The password to use when connecting to this database.

  • manager_abilities

    An 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_size

    The 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_seconds

    The 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_hooks

    An arrayref of hook class name.

  • default_plugins

    An 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 :

  • funcname

    the name of the function or a reference to an array of functions.

  • dsn

    The 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.

  • dsn

    The 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.

  • dsn

    The 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.

More Repositories

1

p5-Teng

simple DBI wrapper/ORMapper
Perl
85
star
2

p5-Kamui

Plack base framework
Perl
26
star
3

p5-Jonk

simple job tank system
Perl
15
star
4

p5-net-handlersocket-simple

Net::HandlerSocket wrapper
Perl
12
star
5

p5-Clutch

distributed job system
Perl
12
star
6

p5-DBIx-Handler

DBI connection and transaction management
Perl
11
star
7

p5-DBIx-TransactionManager

db transaction manager
Perl
10
star
8

Komainu

watch your log
Perl
8
star
9

p5-dbix-skinny-sample

DBIx::Skinny's sample codes
Perl
8
star
10

Qudo-Parallel-Manager

forking process manager for qudo
Perl
7
star
11

p5-Parse-DaemontoolsStatus

Perl
7
star
12

Kiki

kamui base wiki
JavaScript
7
star
13

p5-Data-RuledCluster

Perl
7
star
14

MySQueue

JobQueue using MySQL
Perl
6
star
15

Qudo-Parallel-Worker

fork child workers
Perl
5
star
16

qudo-web

qudo web interface
Perl
5
star
17

p5-Idiot

p5-Kamui sample no paste!
CSS
5
star
18

the-schwartz-plugin-logger

TheSchwartz Logger
5
star
19

Sub-Args

Smart check/get arguments.
Perl
4
star
20

nekokak-dotfiles

nekokak's dotfiles
4
star
21

p5-dbix-skinny-cache

skinny cache mixin
Perl
4
star
22

p5-Test-Declare

declarative testing for perl
Perl
3
star
23

p5-test-attribute-autolevel

auto set $Test::Builder::Level
Perl
3
star
24

Qudo-Plugin-Logger

logger for qudo
Perl
3
star
25

p5-qudo-driver-dbi

qudo dbi driver dist
Perl
3
star
26

CGI-Application-Plugin-DebugScreen

CGI-Application-Plugin-DebugScreen
Perl
3
star
27

Perlbal-Plugin-UrlGroup

perlbal plugin
Perl
3
star
28

p5-Smoker

i'm smoker
Perl
3
star
29

DBIx-Skinny-Mixin-DataSection

Data::Section::Simple meets DBIx::Skinny
Perl
3
star
30

Qudo-Hook-ForceQuitJob

qudo hooks
Perl
3
star
31

p5-SQL-Object

Yet another SQL condition builder
Perl
2
star
32

p5-Alarm-Local

export localalarm
Perl
2
star
33

p5-Eureka

FIFO job queue engine
Perl
2
star
34

perlbal-plugin-confloader

load multi perlbal config file loader
2
star
35

p5-Hirugi

undistributed filesystem manager on perlbal
Perl
2
star
36

Qudo-Hook-Notify

notify infomation from qudo
Perl
2
star
37

class-accessor-exporter

Class-Accessor-Exporter
2
star
38

p5-data-koyomi

koyomi map
Perl
2
star
39

DBIx-DBHResolver-Strategy-RoundRobin

round robin dbh
Perl
2
star
40

DBIx-Skinny-Mixin-DBHResolver

mixin DBHResolver for Skinny
Perl
2
star
41

Rediq

job queue based on Redis
Perl
2
star
42

App-MadEye-Plugin-Agent-Qudo

watching qudo!
Perl
2
star
43

p5-Object-Container-Exporter

Perl
2
star
44

p5-Method-Overload

overload from args info
Perl
2
star
45

class-anon

Class-Anon
2
star
46

Perlbal-Plugin-PoolSelector

perlbal revers_proxy plugin
Perl
2
star
47

p5-Spork-S5ThemeRedSimple

my spork theme
Perl
1
star
48

p5-Method-Delegater

delegate another class method for you class
Perl
1
star
49

p5-Test-MySQL-Schema

Perl
1
star
50

Sherlock

eazy shared lock system
Perl
1
star
51

p5-Path-Porter

path dispatcher.
1
star
52

p5-test-fixture-dbixskinny

DBIx::Skinny's test fixture maker.
Perl
1
star
53

Perlbal-Plugin-ProxyHost

reproxy to another host
Perl
1
star
54

p5-cache-memcached-transparent

sample
Perl
1
star