私は一般的にコーディング/スクリプティングには少し新しく、マルチプロセッシングを実装する助けが必要です。Pythonマルチプロセッシングを使用してルータにログインする
私は現在、ここで2つの機能を説明します。最初の、def getting_routes(router):
はすべての私のルータにログインし(ルータのリストは以前の機能から来ています)、コマンドを実行します。 2番目の関数 `def parse_paths(routes):このコマンドの結果を解析します。
def get_list_of_routers
<some code>
return routers
def getting_routes(router):
routes = sh.ssh(router, "show ip route")
return routes
def parse_paths(routes):
l = routes.split("\n")
...... <more code>.....
return parsed_list
私のリストは、およそ50ルータ長く、その後の解析と一緒に、私は、ルータ、コマンドの実行にsshingを実行するために、マルチプロセッシングモジュールを使用したいのですがかなりの時間を要し、その後の解析でありますすべてのルータで並列に動作します。 私が書いた:私が好きな何
#!/usr/bin/env python
import multiprocessing.dummy import Pool as ThreadPool
def get_list_of_routers (***this part does not need to be threaded)
<some code>
return routers
def getting_routes(router):
routes = sh.ssh(router, "show ip route")
return routes
def parse_paths(routes):
l = routes.split("\n")
...... <more code>.....
return parsed_list
if __name__ == '__main__':
worker_1 = multiprocessing.Process(target=getting_routes)
worker_2 = multiprocessing.Process(target=parse_paths)
worker_1.start()
worker_2.start()
は、コマンドを実行し、解析された出力を返す、ルータに並列sshingためです。私はhttp://kmdouglass.github.io/posts/learning-pythons-multiprocessing-module.htmlとマルチプロセッシングモジュールを読んでいますが、まだ必要な結果を得ておらず、未定義のエラーが続いています。マルチプロセッシングモジュールで何が欠落しているかについての助けがありますか?前もって感謝します!