0
我想通過SSH連接到N個主機來檢查命令的輸出。一次成功的運行將在大約2秒內返回,而每次超時可能需要40秒。正如我們可以看到的5臺主機一樣,最好的情況是10秒,而最壞的情況是3分鐘以上。並行和異步結果
所以我想並行透明地執行它們,當最後一個結束,我要檢查的輸出(和錯誤,如果他們發生過)。我不希望單個結果放慢整個過程。
繼承人的功能,我需要以並行方式運行:
def fetch_results_from_ssh(host):
try:
a = login_and_fetch_values()
return a
except:
throw Exception("something")
繼承人我想使上面的函數異步的那種包裹的:
result_futures = []
for i in ["h1","h2","h3"]
result_futures.append(async(fetch_results_from_ssh(i))
for i in result_futures:
if i.worked_fine():
print "host " + host + "value: " + i.value #yes, i did not define host anywhere
else:
print "host " + host + "error: " + i.error
我如何並行執行它?我更喜歡標準庫可行,即使我需要更多代碼。