The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Предварительный выпуск проекта PXP, развивающего расширенный диалект языка PHP"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Предварительный выпуск проекта PXP, развивающего расширенный..." +/
Сообщение от Ilya Indigo (ok), 22-Май-23, 04:26 
>> У меня недавно возникла проблема в том, что php многопоточность возможна только через вызов exec('... &'),
> pcntl_fork чем не устроил?

https://www.php.net/manual/ru/function.pcntl-fork.php
Я не понял как это использовать и что мне это даёт.
Мне нужно чтобы скрипт выполняя какие-то синхронные действия, запустил несколько, в зависимости от условий, асинхронных процессов, затем продолжил свою синхронную работу и по окончании или завершился сразу, не завершая при этом асинхронные процессы или дождался завершения последнего асинхронного процесса и завершился.
Как это сделать с pcntl_fork() я не понял.

> Т.е. даже вот так:
> php -r '$res=proc_open("php -r \"sleep(15);\"", array(["pipe","r"], ["pipe","w"], ["pipe","w"]), $p); echo implode("\n",proc_get_status($res)), "\n";'

https://www.php.net/manual/ru/function.proc-open.php
С proc_open() не разобрался показалось слишком сложной и не понятно что такое pipe-ы и как с ними работать, если я предполагаю что процесс сам будет побочные действия выполнять и мне в него ничего передавать кроме аргументов вызова не нужно, а получить я от него хочу только pid или код возврата, когда он и подобные ему процессы завершаются. Но как это реализовать не совсем понял.
С proc_get_status($res) мне в конце скрипта в бесконечном цикле с секундной задержкой каждый запущенный процесс опрашивать что ли нужно перед выходом, чтобы получить код возврата?
Иначе $res я потеряю же после выхода?

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Предварительный выпуск проекта PXP, развивающего расширенный диалект языка PHP, opennews, 16-Май-23, 18:36  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру