Я пытаюсь запустить несколько скриптов на нескольких серверах одновременно. Вот пример кода.python fabric для параллельной обработки
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")
И я побежал ливерпульской команды, как это:
fab run_shell1 run_shell2
Но когда я запускал код, я получил ошибку вроде этого:
pickle.PicklingError: Can't pickle <function inner at 0x0000000003280438>: it's
not found as fabric.tasks.inner
Там были также некоторые другие ошибки сообщения о многопроцессорности/process.py и fabric/job_queue.py и т. д.
Я проверил версию ткани, это 1 .11.1.
Это ваш полный код? Я не эксперт по ткани, но что-то кажется пропавшим. –
Да, это почти полный код. Чего не хватает? –
Не уверен, на основании сообщения об ошибке я бы ожидал увидеть какую-то внутреннюю функцию, например, вложенную задачу или что-то в этом роде, но, возможно, она имеет какое-то отношение к '@ parallel', я сам не использовал эту функцию. –