Суть моего вопроса заключается в том, что происходит с многопроцессорной очередью, когда родитель (демон в этом случае) убит.
У меня есть демон, который работает в фоновом режиме, который ставит в очередь задания для дочерних процессов:
class manager(Daemon):
def run(self):
someQueue = MP.Queue()
someChild = MP.Process(target=someCode, args=(someArgs))
someChild.start()
...
Если менеджер убит (при условии, что он не пытался использовать someQueue
и поэтому повредил его, как указано в документации), есть ли способ восстановить данные в очереди?
Два теоретических решения, которые я вижу, это очистить someQueue
в someChild
перед выходом из этого дочернего процесса. Также дамп очередей, чтобы я мог восстановить состояние очередей при выходе из менеджера, также решил бы мою проблему. Однако, прежде чем приступить к реализации, было бы неплохо подтолкнуть его в правильном направлении.
Спасибо