Создание древовидных задач с многопроцессорной обработкойPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Создание древовидных задач с многопроцессорной обработкой

Сообщение Гость »


Я пытаюсь создать приложение, которое создает задачи, и указанные задачи могут создавать дочерние задачи или в конечном итоге завершаться.

Это не работает, поскольку говорится: «Объекты пула не могут передаваться между процессами или консервироваться»

Любая помощь будет оценена
импортировать многопроцессорный процесс как mp импортировать случайный время импорта defgenerate_weighted_random_task_list(): num = random.choices([0, 1, 2, 3], веса=[70, 10, 10, 10], k=1)[0] если число == 0: вернуть ["завершено"] еще: return [f"Задача {i+1}" для i в диапазоне (число)] класс Задача: defsolve_task(я, задача): возвратитеgenerate_weighted_random_task_list() класс TaskNode: def __init__(self, Task_key, цель): self.task_key = Task_key self.goal = цель self.дети = [] def выполнить(self, пул): # Передать централизованный пул в качестве аргумента агент = Задача() sub_tasks = агент.resolve_task(self.goal) если sub_tasks == ["завершено"]: вернуть self.task_key + «закончено» себя.дети = [ TaskNode(self.task_key + "_" + str(i), sub_task) для i, sub_task в перечислении (sub_tasks) ] # Использование централизованного пула вместо создания нового результаты = пул.карта( лямбда-дочерний элемент: child.execute(пул), self.children ) # Передаем пул вниз распечатать(результаты) return [элемент для подсписка в результатах для элемента в подсписке] с mp.Pool(processes=1) в качестве пула: root_task = TaskNode("1", "Выполнить задачу") results = root_task.execute(pool) # Запуск выполнения из централизованного пула распечатать(результаты)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»