как реализовать управление дочерним(fork- нутым) процессом ...

DolgoV

Новичок
как реализовать управление дочерним(fork- нутым) процессом ...

сейчас стоит задача в следующем, запускается скрипт deamon.php который сначала fork-ает, а затем выдаёт работу порожденным скриптам. Общение родителького deamon.php скрипта с child решил делать через базу mySql.
на каждый child поток сущесвует строка в таблице с полями param_in и param_out.


Логика.
1. В поле param_in deamon.php пишет каждому своему child-у команду.
------------------------------ +
param_in | param_out |
------------ +--------------- +
exec | NULL |
------------------------------+

2. каждый child читает свой param_in затем обнуляет его, после выполнения дейсвия пишет ответ в свой param_out

------------------------------ +
param_in | param_out |
------------ +--------------- +
NULL | executed |
------------------------------+

3. deamon.php читает не пустые колонки каждого столбца param_out затем обнуляет их и выдаёт дальнейшие действия для каждого потока
------------------------------ +
param_in | param_out |
------------ +--------------- +
action1 | NULL |
------------------------------+

потом всё повторяется.

Проблема в том, что я не могу придумать эффективного алгоритма управления цепочкой передачи-> встречи-> отчета в скриптах deamon и child.


Может кто поделится каким решением, или предложит альтернативный вариант обмена информацией между скриптами, буду благодарен
 

DolgoV

Новичок
Автор оригинала: Dovg
Может быть стоит управлять сигналами?

http://ru.php.net/manual/ru/function.posix-kill.php
а как можно сигналами значения передавать ?
у меня например с родителя идет команда exec=1,1,бла бла бла
это означает что клиент должен запустить метод exec с параметрами (1,1,'бла бла бла') ?
 

Dovg

Продвинутый новичок
сигналами можно передать, что необходимо перечитать конфигурацию
 

whirlwind

TDD infected, paranoid
DolgoV Вы знаете, для каких целей существует префорк? Если нет, то упрощайте архитектуру. Скорее всего, вполне можно обойтись форком на команду.
 
Сверху