On 06/20/2015 05:14 AM, Cameron Simpson wrote:
I would keep your core logic Pythonic, raise exceptions. But I would
wrap each task in something to catch any Exception subclass and report
back to the queue. Untested example:
def subwrapper(q, callable, *args, **kwargs):
try:
q.put( ('COMPLETED', callable(*args, **kwargs)) )
except Exception as e:
q.put( ('FAILED', e, callable, args, kwargs) )
then dispatch tasks like this:
pool.map(subwrapper, q, task1, dirs, chunksize=1)
and have a thread (or main program) collect things from the queue for
logging and other handling. Obviously you might return something more
sophisticated that my simple tuple above, but I'm sure you get the idea.
Cheers,
Cameron Simpson
Perfect! Much more elegant and easier to implement on top of my existing
workflow based on raising exceptions.
thanks to all responses,
Fabien
--
https://mail.python.org/mailman/listinfo/python-list