0
私は2つのリストを1つのリストに含み、第2のリストにはサービスリストが含まれています。2つのリストからマルチプロセッシングのターゲット関数を渡して個々のプロセスを個々のプロセスで処理する方法
server_list = [u'server1', u'server2', u'sever3', u'server4']
servive_name = [[u'postfix', u'diamond', u'lldpd', u'ssh', u'nagios-nrpe-server'], [u'postfix', u'lldpd', u'ssh', u'nagios-nrpe-server'], [u'postfix', u'lldpd', u'ssh', u'nagios-nrpe-server'], [u'postfix', u'lldpd', u'ssh', u'nagios-nrpe-server']]
私は私がしたいことは、各プロセスである
ssh_to_restart(server_name,services,output):
{
// do ssh on the server and restart the service from service list
}
は、サーバー名と、それぞれのリストからサービスのリストを受け取り、この機能を持っている(EX- SERVER1がSERVICE_LISTに第一のリストにマッピングするためにあり、 ssh_to_restart()関数を実行します。 また、それで作成されるプロセスの数は、server_listの長さと等しくなければなりません。 どのように私はこのコード
output = multiprocessing.Queue()
processes = [multiprocessing.Process(target=ssh_to_server, args=(server_list,service_list,output))]
EDITのようなものでこれを達成することができます - 私はやったこれらのコードで
from multiprocessing.dummy import Pool as ThreadPool
pool = ThreadPool(4)
pool.map(ssh_to_restart,zip(server_list,service_list))
pool.close()
pool.join()
を試みたが、
TypeError: ssh_to_restart() takes exactly 2 arguments (1 given)