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 )