Python 并行运行for循环(特定)
我正在编写一个系统,基本上可以将一些数据上传到云端。该数据由两部分组成Python 并行运行for循环(特定),python,python-3.x,for-loop,multiprocessing,Python,Python 3.x,For Loop,Multiprocessing,我正在编写一个系统,基本上可以将一些数据上传到云端。该数据由两部分组成 原始数据-整个目录 配置相关csv文件 一旦我上传了原始数据(本地机器到云存储),我就从本地机器获取运行的相关配置,并将其上传到云存储 问题是,有时原始数据可用,但配置延迟 上传原始数据并检查配置是否可用后,我使用以下逻辑: 我有一个dict,我的_运行 csv_exists = False attempts = 0 for run,loc in my_runs.items(): while not csv_exis
我的_运行
csv_exists = False
attempts = 0
for run,loc in my_runs.items():
while not csv_exists:
if os.path.isdir(loc):
upload_to_cloud()
elif not os.path.isdir(loc) and attempts == 2:
email_me()
attempts += 1
sleep(1800)
else:
attempts+=1
sleep(1800)
print(my_runs)
给出{'k1':'val1','k2':'val2','k3':'val3'}
其中k1,k2,k3:run1,run2,run3
和val1,val2,val3:location1,location2,location3
我在我的\u运行时执行for循环
csv_exists = False
attempts = 0
for run,loc in my_runs.items():
while not csv_exists:
if os.path.isdir(loc):
upload_to_cloud()
elif not os.path.isdir(loc) and attempts == 2:
email_me()
attempts += 1
sleep(1800)
else:
attempts+=1
sleep(1800)
正如您所看到的,如果csv不可用,我会睡两次,每次睡30分钟,然后给自己发电子邮件,然后继续睡觉(因为管道会一直保持到我有了config.csv)
这里的问题是,如果我在run1
上查看location1
,并且在location1
填充之前处于死锁状态,run2
和run3
也在等待,而不检查配置是否存在
如何更改此代码,以便将此for循环作为多进程运行,以便同时检查所有位置的配置文件?上传可用的ONCE,然后等待不可用的ONCE
我不明白如何在for循环中实现多处理
或并发特性
任何帮助或指导都将不胜感激 在这里,多处理比线程更好/更合适吗?这就是我要寻找的答案。目前正试图通过将其提取为函数并使用concurrent.features