Ich versuche herauszufinden, warum Multi-Processing nicht funktioniert. Ich habe schon seit ein paar Tagen gekämpft, weiß .. kann jemand einen Blick darauf werfen und sehen, was ich falsch mache.Python Multiprocessing Pool funktioniert nicht
Ich bekomme keinen Fehler auf dem Skript. Es endet so, als würde es nie die Funktion ausführen, die ich im Pool definiert habe. Ich habe sogar einen gefälschten Funktionsnamen eingegeben, um zu sehen, ob es einen Fehler beim Versuch gibt, es auszuführen, und es nicht einmal zu diesem Punkt kommt. Irgendwelche Gedanken ??
Das Skript funktioniert, wenn ich Multiprocessing nicht verwende, nur um das Skript schneller zu machen. Ich überprüfe 7300 Links für Antwortcodes. Danke im Voraus.
def check_links(linklist):
returnList = []
for links in linklist:
r = requests.get(links)
rc = r.status_code
strRc = str(rc)
result = links+' '+strRc
returnList.append(result)
yield returnList
def main():
pool = multiprocessing.Pool(4)
results = pool.map(check_links, MasterListNoDupes)
pool.close()
pool.join()
for result in results:
print(result)
if __name__ == ' __main__':
main()
Warum 'Sie yield' wenn konnten Sie n' return'ed? Du konstruierst trotzdem die ganze Liste auf einmal. Welche Ausgabe erhalten Sie? – ForceBru
'if __name__ == '__main __':', Ein zusätzliches Leerzeichen ist in '__main__' enthalten. clear it – Arun
Ich lege es bei der Rückkehr zurück. Ich habe das als einen Schritt zur Fehlerbehebung versucht ... –