for循环中的多处理-Django

时间:2019-06-25 13:26:44

标签: django multithreading for-loop multiprocessing writefile

我有一个很大的列表,说10000, 我正在尝试检查json中是否存在密钥,如果没有,我必须添加它。这是示例代码,

with open('filename', 'rt') as f:
    data_obj = json.loads(f.read())

for item in items:
    try:
        key = data[item.lower()]
        #<my code>
    except Exception as e:
        data = item
        with open('filename', 'w') as outfile:  # have to create a data.json file
             json.dump(data, outfile)

我有2个问题,

  1. 迭代本身需要很长时间。
  2. 写入操作会消耗更多时间。

简而言之,要花费900分钟才能获得响应。我想在这里使用多重处理。

我正在使用以下示例代码来实现它,

def try_multiple_operations(items):
    for item in items:
        try:
            api.my_operation(item)
        except:
            print('error with item')

executor = concurrent.futures.ProcessPoolExecutor(10)
futures = [executor.submit(try_multiple_operations, group) 
           for group in grouper(5, items)]
concurrent.futures.wait(futures)

但是try_multiple_operations仅接受一个参数,但就我而言,我有两个以上的参数。 我应该如何使用多重处理?

0 个答案:

没有答案