Skip to content

Instantly share code, notes, and snippets.

@jzawodn
Created November 14, 2008 00:01
Show Gist options
  • Save jzawodn/24692 to your computer and use it in GitHub Desktop.
Save jzawodn/24692 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl -w
use strict;
use Event::Lib;
use Data::Dumper;
use MysqlAsync;
use AsyncCaller qw/schedule/;
$Data::Dumper::Terse = 1;
$|=1;
my $expected_results = 25;
my $results = 0;
my $dbh;
for (1..$expected_results) {
my $secs = rand(5);
my $query = qq[select sleep($secs)];
schedule(0.001, sub{
my $dbh = MysqlAsync->new(
database => {
host => "localhost",
port => 3306,
database => "mysql",
passwd => "xxxxxxxx",
user => "root",
},
connect_timeout => 1,
max_requests => 25,
db_timeout => 10,
);
$dbh->get_array($query, \&result );
});
}
event_mainloop();
exit;
sub result
{
my ($result) = @_;
if (defined $result) {
print "result: " . Dumper($result);
} else {
print "error: " . Dumper($dbh->error());
}
$results++;
# all done?
if ($results == $expected_results) {
exit;
}
}
__END__
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment