我有一个下面的代码,它按顺序运行for循环。我试图看看可以做些什么来有效地并行运行它
在for循环中,我调用validate
方法,该方法进行HTTP
调用,并基于该抛出异常(如果有)。一旦每个machine
的validate
方法成功,我将增加n_succeeded
变量,但如果有任何失败,我将向messages
变量追加错误消息,如下所示:
def validate_all(
session: Session, env: str, instance: str, new_config: str, action: str
) -> Tuple[
int, # Succeeded machines
int, # Total machines
List[str], # Error messages
]:
with session.get(
make_catalog_url(env=env),
params={'ns': 'default', 'tag': instance}
) as response:
response.raise_for_status()
machines = response.json()
n_succeeded = 0
n_total = len(machines)
messages = []
# need to make this for loop run in parallel
for machine in machines:
try:
validate(session, env, instance, new_config, action, machine)
n_succeeded += 1
except Exception as e:
messages.append(str(e))
return n_succeeded, n_total, messages
如何有效地并行运行上述for循环?machines
的最大大小为100
我正在考虑使用Python多处理模块,但没有弄清楚如何在这里正确使用它
目前没有回答
相关问题 更多 >
编程相关推荐