package Jonk;
use strict;
use warnings;

our $VERSION = '0.02';

1;
__END__

=head1 NAME

Jonk - simple job tank manager.

=head1 SYNOPSIS

    use DBI; 
    my $dbh = DBI->connect(...);
    # enqueue job
    {
        use Jonk::Client;
        my $jonk = Jonk::Client->new($dbh);
        $jonk->enqueue('MyWorker', 'arg');
    }

    # dequeue job
    {
        use Jonk::Worker;
        my $jonk = Jonk::Worker->new($dbh, {functions => ['MyWorker']});
        my $job = $jonk->dequeue;
        print $job->{func}; # MyWorker
        print $job->{arg};  # arg
    }

=head1 DESCRIPTION

Jonk is simple job tanking system.

Job is saved and taken out. Besides, nothing is done.

You may use Jonk to make original Job Queuing System.

=head1 L<Jonk::Client>

enqueue client class.

=head1 L<Jonk::Worker>

dequeue client class.

=head1 SCHEMA

=head2 MySQL

    CREATE TABLE job (
        id           int(10) unsigned NOT NULL auto_increment,
        func         varchar(255)     NOT NULL,
        arg          MEDIUMBLOB,
        enqueue_time DATETIME         NOT NULL,
        primary key ( id )
    ) ENGINE=InnoDB

=head2 SQLite

    CREATE TABLE job (
        id           INTEGER PRIMARY KEY ,
        func         text,
        arg          text,
        enqueue_time text
    )

=head2 PostgreSQL

    CREATE TABLE job (
        id           SERIAL PRIMARY KEY,
        func         TEXT NOT NULL,
        arg          BYTEA,
        enqueue_time TIMESTAMP NOT NULL
    )

=head1 SUPPORT

  irc: #jonk@irc.perl.org

=head1 REPOSITORY

  git clone git://github.com/nekokak/p5-Jonk.git

=head1 CONTRIBUTORS

tokuhirom

kan_fushihara

fujiwara

=head1 AUTHOR

Atsushi Kobayashi E<lt>nekokak _at_ gmail _dot_ comE<gt>

=head1 SEE ALSO

=head1 LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

=cut

