неблокирующий — PHP Неблокирующий дочерний процесс, который заканчивается родительским

Оглядевшись некоторое время, я не нашел ответа на то, что, на мой взгляд, было бы простым делом.

Я пишу на PHP, и мне нужно запустить дочерний процесс от родителя. Дочерний процесс должен быть неблокирующим: родитель должен иметь возможность продолжить обработку, пока он работает в фоновом режиме. (Обратите внимание, что я не могу использовать разветвление процесса, потому что родитель и потомок не являются одним и тем же процессом.) Как только родитель завершит обработку или неожиданно падает, дочерний процесс должен быть прекращен.

В настоящее время я реализовал это с помощью отдельного дочернего процесса, и он работает довольно хорошо … до тех пор, пока не произойдет сбой родительского процесса. Со временем, если многие родители потерпят крах, совокупность незавершенных дочерних процессов раздувает систему, как полчища злых варваров.

Я не могу проверить, запущен ли дочерний процесс-сирота, и завершить его до запуска родительского процесса — могут быть другие родительские процессы, работающие со своими собственными дочерними процессами, и невозможно определить, какой родитель использует, какой дочерний элемент и какой дочерний элемент является сиротой.

Любая помощь будет оценена!

1

Решение

Исходя из комментария Н.Б. и не зная, как это закодировано, мое единственное предложение о том, как с этим справиться, было бы из обработки сбоев. Это происходит сбой из-за создаваемого исключения, которое вы можете перехватить либо в родительском классе, либо из того места, где осуществляется управление родительским классом. Если да, то можете ли вы тогда закрыть свои дочерние процессы из обработчика исключений? Возможно, у вас все еще должна быть какая-то ручка, чтобы добраться до дочерних процессов оттуда.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector