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!
-- Ed Leafe
_______________________________________________
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]