jzawodn (owner)

Forks

Revisions

  • e5668a Thu Nov 13 16:01:23 -0800 2008
gist: 24692 Download_button fork
public
Public Clone URL: git://gist.github.com/24692.git
Embed All Files: show embed
Perl #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/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__