многопроцессорный модуль с paramiko

Я пытаюсь использовать модуль python paramiko (1.7.7.1) для выполнения команд и / или файлов xfer для группы удаленных серверов в параллели. Одна задача выглядит так:

jobs = []   
for obj in appObjs:
    if obj.stop_app:
        p = multiprocessing.Process(target=exec_cmd, args=(obj, obj.stop_cmd))
        jobs.append(p)
        print "Starting job %s" % (p)
        p.start()

"obj" содержит, среди прочего, paramiko SSHClient, transport и SFTPClient. Список appObjs содержит примерно 25 таких объектов и, таким образом, 25 подключений к 25 различным серверам.

Я получаю следующую ошибку с paramiko transport.py в трассировке событий

raise AssertionError("PID check failed. RNG must be re-initialized after fork(). 
Hint:   Try Random.atfork()")

Я исправил /usr/lib/python2.6/site -packages / paramiko / transport.py на основе сообщения на https://github.com/newsapps/beeswithmachineguns/issues/17 , но, похоже, это не помогло. Я проверил, что используется transport.py в указанном выше пути. Список рассылки paramiko, кажется, исчез.

Похоже ли это на проблему в paramiko, или я неправильно понимаю / неправильно применяю модуль multiprocessing? Кто-нибудь захочет предложить практическое решение? Большое спасибо,

5
задан murphy 22 June 2011 в 21:06
поделиться