AnyEvent-Beanstalk-Worker

 view release on metacpan or  search on metacpan

eg/web-add.pl  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use AnyEvent::Beanstalk;
use Mojo::UserAgent;
use JSON;
use Data::Dumper;

my @urls = ();

if (@ARGV) {
    push @urls, @ARGV;
}

else {
    my $ua = Mojo::UserAgent->new;
    my $tx = $ua->get('http://www.uroulette.com/');

    $tx->res->dom->find('blockquote a[href]')->each(sub { push @urls, shift->{href} });
}

my $method = "GET";

my $bs = AnyEvent::Beanstalk->new
  (server => 'localhost',
   encoder => sub { encode_json(shift) });

$bs->use('web-jobs')->recv;

for my $url ( @urls ) {
    my $job = $bs->put({ priority => 100,
                         ttr      => 15,
                         delay    => 1,
                         encode   => { url => $url,
                                       method => $method }})->recv;

    print STDERR "job added to queue (" . $job->id . "): " . Dumper($job->data);
}

exit;



( run in 2.128 seconds using v1.01-cache-2.11-cpan-99c4e6809bf )