Ich versuche, einige Skripte gleichzeitig auf mehreren Servern auszuführen. Hier ist der Beispielcode.Python-Fabric für parallele Verarbeitung
server1 = ""
server2 = ""
env.parallel = True
@task
@hosts(server1)
@parallel
def run_shell1():
run("sh shell1.sh")
@task
@hosts(server2)
@parallel
def run_shell2():
run("sh shell2.sh")
Und lief ich die fab Befehle wie folgt aus:
fab run_shell1 run_shell2
Aber wenn ich den Code lief, habe ich den Fehler wie folgt aus:
pickle.PicklingError: Can't pickle <function inner at 0x0000000003280438>: it's
not found as fabric.tasks.inner
Es gab auch einige andere Fehler Meldungen über multiprocessing/process.py und fabric/job_queue.py usw.
Ich habe die Version des Stoffes überprüft, es ist 1 .11.1.
Ist dies Ihr vollständiger Code? Ich bin kein Stoffexperte, aber etwas scheint zu fehlen. –
Ja, es ist fast voller Code. Was fehlt? –
Nicht sicher, basierend auf der Fehlermeldung hätte ich erwartet, eine innere Funktion zu sehen, wie eine verschachtelte Aufgabe oder etwas - aber vielleicht hat es etwas mit '@ parallel' zu tun, ich habe dieses Feature nicht selbst benutzt. –