On 8/25/10 12:24 PM, Ed Leafe wrote: > On Aug 25, 2010, at 3:06 PM, Paul McNett wrote: > >>> Thanks Paul! One more question... is there any problem calling the >>> above routine about 25 times in a row? IOW will it wait while >>> outputting a file before outputting the next one? >> >> It will run them sequentially unless you provide for multi-thread or >> multi-process >> processing. If you want your UI to remain responsive while this stuff runs, >> then I'd >> consider making it a completely separate process which you spawn using the >> subprocess >> module. You could have a timer fire every 10 seconds or so to poll for a file >> semaphore somewhere to then present the status screen to the user when the >> other >> process finishes. > > > Check out eventlet: http://eventlet.net/ Here's some pseudo-code that > will run up to 50 blocking processes concurrently; I'm assuming that the > process is called 'printPDF', and takes a file name as an argument. > > > import eventlet > pool = eventlet.GreenPool(size=50) > for nm in myFileNames: > pool.spawn_n(printPDF, nm) > with eventlet.Timeout(120): > pool.waitall() > > > Much nicer than threads to maintain, and much more memory-efficient!
Yes, eventlet is cool and looks like a nice way to handle these types of problems. You meant "I assume the *function* is called printPDF", though, I assume. Paul _______________________________________________ Post Messages to: [email protected] Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users Searchable Archives: http://leafe.com/archives/search/dabo-users This message: http://leafe.com/archives/byMID/[email protected]
