The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Jonk::Cookbook::ErrorHandling - error handling enqueue and dequeue

USAGE

enqueue script:

    #! perl
    use strict;
    use warnings;
    use DBI;
    use Jonk::Client;
    
    my $dbh = DBI->connect('dbi:mysql:test','user','pass');
    my $jonk = Jonk::Client->new($dbh);
    my $job_id = $jonk->enqueue('worker_key','job_data_here');
    if ($jonk->errstr) {
        die $jonk->errstr;
    }

worker script:

    #! perl
    use strict;
    use warnings;
    use DBI;
    use Jonk::Worker;
    use Your::Worker;
    
    my $dbh = DBI->connect('dbi:mysql:test','user','pass');
    my $jonk = Jonk::Worker->new($dbh => {functions => [qw/worker_key/]});
    
    while (1) {
        my $job = $jonk->dequeue;
        if ($jonk->errstr) {
            die $jonk->errstr;
        }
        if ($job) {
            Your::Worker->work($job);
        } else {
            sleep(3); # wait for 3 sec.
        }
    }