Wie fangen Sie die Ausnahmen bei Arbeitern in Multiprocessing

Arbeite ich mit dem multiprocessing-Modul in Python (2.7.3) und Debuggen möchten, einige Dinge in meine Arbeiter. Aber ich scheine nicht in der Lage sein, um alle Ausnahmen abzufangen, die in den worker-threads.

Einem minimal-Beispiel:

import multiprocessing as mp


a=[1]
def worker():
    print a[2]


def pool():
    pool = mp.Pool(processes=1)
    pool.apply_async(worker, args = ())
    pool.close()
    pool.join()
    print "Multiprocessing done!"


if __name__ == '__main__':
    pool()

Dies wird voraussichtlich zu erhöhen, wird ein IndexError, aber meine Ausgabe ist nur

    Multiprocessing done!

Gibt es eine Möglichkeit, mir zu zeigen, alle auftretenden Ausnahmen in der worker-threads ohne manuell anheben meiner eigenen?

InformationsquelleAutor Dschoni | 2014-02-28
Schreibe einen Kommentar