in reply to Re^4: Consumes memory then crashs
in thread Consumes memory then crashs
Now I am back to where I started, 1 response ever 1 or 2 seconds, too slow. Is there a simple solution to thread this properly?
Yes. Try this:
#! perl -slw use strict; use threads; use threads::shared; use Thread::Queue; use LWP::Simple; my $sem :shared; sub lookup { my( $fh, $name ) = @_; my $lookup = get( "http://rscript.org/lookup.php?type=track&time=62899200&user=$ +name&skill=all" ); print "Looking up $name...\n"; if( $lookup =~ m/gain:Overall:\d+:(\d+)/isg ) { lock $sem; print { $fh } "$name $1\n"; } elsif( $lookup =~ m/(ERROR)/isg ) { lock $sem; print { $fh } "$name doesn't exist \n" } else{ lock $sem; print { $fh } "$name 0\n"; } } our $THREADS //= 4; my $names = 'zezima fred bill john jack'; my $Q = new Thread::Queue; open( LOOKUP, '>>rstlookup.txt' ) or die $!; my @threads = map async( sub { while( my $name = $Q->dequeue ) { lookup( \*LOOKUP, $name ); } } ), 1 .. $THREADS; while( $names =~ m/([a-z0-9_]+)/isg ) { $Q->enqueue( $1 ); sleep 1 while $Q->pending > $THREADS * 2; } $Q->enqueue( (undef) x $THREADS ); $_->join for @threads; close( LOOKUP ); __END__ [15:38:57.93] C:\test>junk39 Looking up john... Looking up bill... Looking up fred... Looking up zezima... Looking up jack... [15:39:03.07] C:\test>type rstlookup.txt bill 0 fred 135601422 zezima 417155645 john 0 jack 8133157
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Consumes memory then crashs
by mbethke (Hermit) on Mar 24, 2012 at 19:35 UTC | |
by davido (Cardinal) on Mar 24, 2012 at 21:20 UTC | |
by BrowserUk (Patriarch) on Mar 24, 2012 at 23:12 UTC | |
by zwon (Abbot) on Mar 25, 2012 at 05:34 UTC | |
by BrowserUk (Patriarch) on Mar 25, 2012 at 06:34 UTC | |
by chromatic (Archbishop) on Mar 25, 2012 at 07:57 UTC | |
| |
by BrowserUk (Patriarch) on Mar 25, 2012 at 10:39 UTC | |
by mbethke (Hermit) on Mar 25, 2012 at 07:24 UTC | |
by BrowserUk (Patriarch) on Mar 25, 2012 at 09:36 UTC | |
by mbethke (Hermit) on Mar 25, 2012 at 23:33 UTC | |
| |
|
Re^6: Consumes memory then crashs
by allhellno (Novice) on Mar 24, 2012 at 16:00 UTC | |
by BrowserUk (Patriarch) on Mar 24, 2012 at 23:17 UTC |