Я пытаюсь написать многопроцессорное приложение, в котором у меня есть список компаний, для которых нужно запускать отдельные процессы из пула процессов.
У меня есть функция, которая берет 3 аргумента, из которых 1 самои второй - список, а третий - балансовая единица.Я пытаюсь обработать функцию как процесс для каждой балансовой единицы.У меня изначально была проблема с переменной self, которая выдает ошибку 'pickle', которую я сейчас преодолеваю, передав None.Я использовал 'Partial' для проблемы с несколькими аргументами в многопроцессорной обработке, после чего я получаю сообщение об ошибке "TypeError: могу объединить str (не" list ") в str" при добавлении company_list как итеративного к моей карте.
def processing_saved_search_per_company(self, saved_search_list, each_cpy):
print("Company Key : " + each_cpy)
print("Saved Search List : " + saved_search_list)
def process(self):
saved_search_list =[]
company_list = APICall.fetch_onboarded_companies_from_customer_csv(self)
saved_search_list_file = os.path.join(code_dir_path, "resources\\saved_search_template.txt")
try:
with open(saved_search_list_file, "r") as ss_file_pointer:
saved_search_list = ss_file_pointer.readlines()
except IOError as ie:
print(f"Error Occurred while accessing the Saved Search file reason being :-: {ie}")
final_ss_list = []
p=Pool(processes=4)
#for each_cpy in company_list:
print("Company List : "+str(company_list))
func = partial(APICall.processing_saved_search_per_company,None,saved_search_list)
p.map(func, company_list)
p.close()
Мне нужно создать пул процессов, который работает следующим образом:
p1 = processing_saved_search_per_company (self, save_search_list, "company 1")
p2 = processing_saved_search_per_company (self ,ved_search_list, "company 2")
p3 = processing_saved_search_per_company (self, save_search_list, "company 3")
, но с ошибкой:
TypeError: может объединять только str (не "список") на стр
Запрос помощи по этому вопросу.
Спасибо, Шахид