Ich muss aus einer sehr großen Sammlung lesen und einige Operationen auf jedem Dokument durchführen.Pymongo parallel_scan
Ich benutze PYMONGO parallel_scan, um diese Operationen auf eine Reihe von Prozessen zur Verbesserung der Effizienz zu tun.
cursors = mongo_collection.parallel_scan(6)
if __name__ == '__main__':
processes = [multiprocessing.Process(target=process_cursor, args=(cursor,)) for cursor in cursors]
Obwohl die Prozesse, die diese Cursor verwenden als erwartet beginnen und läuft, werden alle Prozesse beenden ihren Teil und Ausgang und schließlich nur ein Prozess für eine lange Zeit läuft weiter.
Es sieht so aus, weil parallel_scan die Dokumente nicht gleichmäßig auf die Cursor verteilt. Wie mache ich alle Cursor eine fast gleiche Anzahl von Dokumenten.