Ich habe zwei Entwicklungsumgebungen ... einen Windows-Computer und einen Mac für unterwegs. Das Skript läuft auf dem Windows-Computer einwandfrei und durchläuft alle Pools. Aber auf dem Mac hängt es einfach. Es funktioniert, aber wenn ich den Prozess manuell zu 1.Multiprocessing hängt, wenn fertig auf dem Mac, aber nicht Windows
Dies hängt ...
def insert_user_request(self, data):
pool_size = multiprocessing.cpu_count() * 2
pool = multiprocessing.Pool(processes=pool_size)
pool.map(self.insert_user, data)
Dies funktioniert ...
def insert_user_request(self, data):
pool_size = 1
pool = multiprocessing.Pool(processes=pool_size)
pool.map(self.insert_user, data)
Die Funktion der Pool ruft Einsätze zählen gesetzt Daten in eine Datenbank und sicher genug, die Daten gehen in Ordnung. Es ist also das "Herunterfahren" der Pools, das scheint das Problem zu sein.
Gleiche Versionsnummern von Python und allen beteiligten Bibliotheken? – Doon
Wenn Sie Threads im Mac-Programm verwendet haben, könnte das ein Problem sein. Wenn Sie Python 3 verwenden, sollten Sie die ['spawn' Startmethode] (https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods) anprobieren Mac auch –
Die Spawn-Start-Methode hat funktioniert. Danke, Antti! – TravisVOX