Python 2.7 Python多处理-在子进程之间传递值 我有一个名为grep_phalanx_log的方法,它的功能是通过SSH连接到一台机器,并对某些值进行grep 我的主方法将使用不同的主机名/凭据、日志文件名和grep模式调用此方法 所以,我需要在两个不同的服务器上并行地grep相同的模式。如果在一台服务器中找到匹配项,我希望另一台服务器停止grep。如果在指定的时间内两台服务器中都没有找到该模式,我的方法grep_phalanx_log将返回负值。基于负值,我必须继续执行一些其他要求 类eventFlowTestNfx(对象) def grep_phalanx_日志(self、主机名、用户名、密码、grep_cmd、timeout=10、time_to_monitor=20): ssh_client=paramiko.SSHClient() ssh\u client.set\u缺少主机\u密钥\u策略(paramiko.AutoAddPolicy()) Log.info(“要执行的Grep命令:%r”%Grep\u cmd) 尝试: ssh\u client.connect(主机名,用户名=用户名,密码=密码,超时=超时) 结束时间=time.time()+时间到监视器 while time.time()
因此,我的代码启动了2个过程,我不确定他们将如何相互交谈并终止对方。您可以用以下内容替换时间。Python 2.7 Python多处理-在子进程之间传递值 我有一个名为grep_phalanx_log的方法,它的功能是通过SSH连接到一台机器,并对某些值进行grep 我的主方法将使用不同的主机名/凭据、日志文件名和grep模式调用此方法 所以,我需要在两个不同的服务器上并行地grep相同的模式。如果在一台服务器中找到匹配项,我希望另一台服务器停止grep。如果在指定的时间内两台服务器中都没有找到该模式,我的方法grep_phalanx_log将返回负值。基于负值,我必须继续执行一些其他要求 类eventFlowTestNfx(对象) def grep_phalanx_日志(self、主机名、用户名、密码、grep_cmd、timeout=10、time_to_monitor=20): ssh_client=paramiko.SSHClient() ssh\u client.set\u缺少主机\u密钥\u策略(paramiko.AutoAddPolicy()) Log.info(“要执行的Grep命令:%r”%Grep\u cmd) 尝试: ssh\u client.connect(主机名,用户名=用户名,密码=密码,超时=超时) 结束时间=time.time()+时间到监视器 while time.time(),python-2.7,multiprocessing,Python 2.7,Multiprocessing,因此,我的代码启动了2个过程,我不确定他们将如何相互交谈并终止对方。您可以用以下内容替换时间。time.sleep(1): if not output.strip(): # blank output is_found = found.wait(1) # sleep >= 1 second unless found if is_found: break # stop grepping else: # found something found.se
time.sleep(1)
:
if not output.strip(): # blank output
is_found = found.wait(1) # sleep >= 1 second unless found
if is_found:
break # stop grepping
else: # found something
found.set()
...
return output
其中
found=multiprocessing.Event()
:在父进程中创建它并传递给每个子进程。您的代码有多个与您的问题无关的错误。