document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-24692\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"c1\">#!/usr/bin/perl -w<\/span><\/div><div class=\"line\" id=\"LC2\"><span class=\"k\">use<\/span> <span class=\"n\">strict<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC3\">&nbsp;<\/div><div class=\"line\" id=\"LC4\"><span class=\"k\">use<\/span> <span class=\"nn\">Event::<\/span><span class=\"n\">Lib<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"k\">use<\/span> <span class=\"nn\">Data::<\/span><span class=\"n\">Dumper<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;<\/div><div class=\"line\" id=\"LC7\"><span class=\"k\">use<\/span> <span class=\"n\">MysqlAsync<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC8\"><span class=\"k\">use<\/span> <span class=\"n\">AsyncCaller<\/span> <span class=\"n\">qw<\/span><span class=\"sr\">/schedule/<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC9\">&nbsp;<\/div><div class=\"line\" id=\"LC10\"><span class=\"nv\">$<\/span><span class=\"nn\">Data::Dumper::<\/span><span class=\"nv\">Terse<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC11\">&nbsp;<\/div><div class=\"line\" id=\"LC12\"><span class=\"vg\">$|<\/span><span class=\"o\">=<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;<\/div><div class=\"line\" id=\"LC14\"><span class=\"k\">my<\/span> <span class=\"nv\">$expected_results<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">25<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC15\"><span class=\"k\">my<\/span> <span class=\"nv\">$results<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;<\/div><div class=\"line\" id=\"LC17\"><span class=\"k\">my<\/span> <span class=\"nv\">$dbh<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;<\/div><div class=\"line\" id=\"LC19\"><span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">..<\/span><span class=\"nv\">$expected_results<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">my<\/span> <span class=\"nv\">$secs<\/span>  <span class=\"o\">=<\/span> <span class=\"nb\">rand<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">my<\/span> <span class=\"nv\">$query<\/span> <span class=\"o\">=<\/span> <span class=\"sx\">qq[select sleep($secs)]<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">schedule<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"o\">.<\/span><span class=\"mo\">001<\/span><span class=\"p\">,<\/span> <span class=\"n\">sub<\/span><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">my<\/span> <span class=\"nv\">$dbh<\/span> <span class=\"o\">=<\/span> <span class=\"n\">MysqlAsync<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">new<\/span><span class=\"p\">(<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">database<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">host<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s\">&quot;localhost&quot;<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">port<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"mi\">3306<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">database<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s\">&quot;mysql&quot;<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">passwd<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s\">&quot;xxxxxxxx&quot;<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">user<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s\">&quot;root&quot;<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC30\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">},<\/span><\/div><div class=\"line\" id=\"LC31\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">connect_timeout<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC32\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">max_requests<\/span>    <span class=\"o\">=&gt;<\/span> <span class=\"mi\">25<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC33\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">db_timeout<\/span>      <span class=\"o\">=&gt;<\/span> <span class=\"mi\">10<\/span><span class=\"p\">,<\/span><\/div><div class=\"line\" id=\"LC34\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC35\">&nbsp;<\/div><div class=\"line\" id=\"LC36\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"nv\">$dbh<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">get_array<\/span><span class=\"p\">(<\/span><span class=\"nv\">$query<\/span><span class=\"p\">,<\/span> <span class=\"o\">\\&amp;<\/span><span class=\"n\">result<\/span> <span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC37\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">});<\/span><\/div><div class=\"line\" id=\"LC38\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC39\">&nbsp;<\/div><div class=\"line\" id=\"LC40\"><span class=\"n\">event_mainloop<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC41\">&nbsp;<\/div><div class=\"line\" id=\"LC42\"><span class=\"nb\">exit<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC43\">&nbsp;<\/div><div class=\"line\" id=\"LC44\"><span class=\"k\">sub <\/span><span class=\"nf\">result<\/span><\/div><div class=\"line\" id=\"LC45\"><span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC46\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">my<\/span> <span class=\"p\">(<\/span><span class=\"nv\">$result<\/span><span class=\"p\">)<\/span> <span class=\"o\">=<\/span> <span class=\"nv\">@_<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC47\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nb\">defined<\/span> <span class=\"nv\">$result<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC48\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">print<\/span> <span class=\"s\">&quot;result: &quot;<\/span> <span class=\"o\">.<\/span> <span class=\"n\">Dumper<\/span><span class=\"p\">(<\/span><span class=\"nv\">$result<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC49\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC50\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">print<\/span> <span class=\"s\">&quot;error: &quot;<\/span> <span class=\"o\">.<\/span> <span class=\"n\">Dumper<\/span><span class=\"p\">(<\/span><span class=\"nv\">$dbh<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">error<\/span><span class=\"p\">());<\/span><\/div><div class=\"line\" id=\"LC51\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC52\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"nv\">$results<\/span><span class=\"o\">++<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC53\">&nbsp;<\/div><div class=\"line\" id=\"LC54\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"c1\"># all done?<\/span><\/div><div class=\"line\" id=\"LC55\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nv\">$results<\/span> <span class=\"o\">==<\/span> <span class=\"nv\">$expected_results<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC56\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"nb\">exit<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC57\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC58\"><span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC59\">&nbsp;<\/div><div class=\"line\" id=\"LC60\"><span class=\"cp\">__END__<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/24692/a53ccc83897b1735e4b3b1d57b30ae6398df70a9/gistfile1.pl\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/24692#file_gistfile1.pl\" style=\"float:right;margin-right:10px;color:#666\">gistfile1.pl<\/a>\n          <a href=\"http://gist.github.com/24692\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
