Итак, после выполнения некоторых домашних заданий по этой проблеме кажется, что multiprocessing.pool () не будет работать в AWS Lambda, но multiprocessing.process () должен работать.Проблема в том, что, когда я пытаюсь поменять код, который мне известен, работает с новым кодом .process (), я получаю список вместо значений, которые я ищу.Вот что я пытаюсь сделать:
(примечание: закомментированный код - это пример .pool (), который работает, тогда как .process () прямо под ним - это то, что ломает)
def evaluate_plans_parallel(foo, baz, bar):
score = {}
input_tuple = []
for k, v in plans.items():
input_tuple.append({'somevar1': k, 'somevar3': v, 'somevar': foo,'somevar2': baz})
# score_list = []
# pool = multiprocessing.Pool(get_parallel_count())
# pool = multiprocessing.Pool(3)
# score_list = pool.map(evaluate_single_plan, input_tuple)
processes = []
score_list = []
for tup in input_tuple:
process = Process(target=evaluate_single_plan, args=(tup,))
processes.append(process)
for process in processes:
process.start()
for process in processes:
process.join()
print(processes)
for x in processes:
for k, v in x.items():
score[k] = v
top_score = sorted(score.values())[0]
print('Top score: {}: '.format(round(top_score, 3)))
return score
Я делаю что-то явно неправильное?