2017-06-23 7 views
1

Ich habe ein Skript, das verwendet, Pathos ProcessPool, um eine Funktion data() parallel auf eine Reihe von Datenpunkten zu tun.Herunterfahren von Ressourcen mit Python ThreadPool nach Abschluss

Die Funktion mit dem Namen data() berechnet und sendet das Ergebnis an ein einzelnes Objekt mit dem Namen Database. Da viele Pushs an die db gesendet werden, habe ich eine einfache Queue hinzugefügt, wenn die Queue größer als 500 ist die db.

Das Problem tritt auf, wenn alle Datenpunkte zugeordnet wurden, aber noch eine gewisse Datenmenge in der Warteschlange der Klasse Database vorhanden ist (in jedem Prozess könnte Prozess 1 100 Prozess 2 200 haben).

Ich habe eine Funktion geschrieben, um beim Beenden zu spülen, aber wie kann ich diese Funktion auf allen Prozessen nennen?

Antwort

1

Es gibt Manager im Multiprocessing, mit dem Sie auf Daten zugreifen können, die von den Prozessen auf einmal gespeichert werden, anstatt die Warteschlange zu verwenden.

Sie können darüber lesen here

Verwandte Themen