Как справляться с такого рода задачами?

vanicon

Новичок
Всем спасибо за рассуждение...
Продолжу с gearman и вечно живущими процессами на php.
Но пока ограничусь 1 workom на задачу, если справляться не будет тогда добавлю...
 

AmdY

Пью пиво
Команда форума
vanicon
ты как собираешься делать, надеюсь отдельно слушателя, отдельно воркеров, которых слушатель форкает или дргим образом поднимает в фоне?
 

vanicon

Новичок
отдельно слушателя, отдельно воркеров, которых слушатель форкает
Думал уже над этим, даже пробовал с форками что то мутить, но ничего путного не вышло...
Может дадите ссылку где почитать, у меня даже пишет:
Call to undefined function pcntl_fork(), хотя расширение pcntl показывает при выполнение команды php -m
 

AmdY

Пью пиво
Команда форума
а ты запускаешь из cli или через веб браузер, там же разные конфиги юзаются
 

AmdY

Пью пиво
Команда форума
кстати, вот библиотека для работы с потоками. может кто ещё чего посоветует, а то я давно темой не интересовался.
https://github.com/amal/AzaThread можно ещё phpdaemon посмотреть.
 

vanicon

Новичок
нет, через браузер
А что в конфиги прописать что бы он его видел?
 

vanicon

Новичок
Я так понял что нужно писать демона на php, который будет слушать gearman'a и плодить процессы..
Лан ушел читать и искать по просторам интернета...
 

vanicon

Новичок
Всем привет.
Прочел несколько статей по поводу создания демонов на php, и даже нашел одного демона на php для gearman.
Я на основе его создал своего, но мало что изменилось...почти то же самое что и запуск из консоли посредством nohup.
Суть демона:
При запуске я формирую нужные задачи: mail, resize, redis_push
Демон создает потоки: кол-во потоков = кол-во задач (то есть 3)
И потом опять же в цикле прослушивается эти задачи но в 3 потоках, то есть каждая задача прослушивается в отдельном потоке.
Почти тоже самое что и раньше, просто теперь удобно убивать процессы, нужно всего лишь перезапустит демона...
Это мой первый демон, но я думаю что, что то не так...
Вот как бы я хотел организовать:
Передаем задачи демону,
тот сначала просматривает gearman и если есть задания для конкретной задачи он создает ей поток и она выполняется, затем поток завершается...
И это все дело в цикле крутить...
Но как мне прослушивать gearman на все задачи я не знаю, искал в его функциях но так и не нашел.
Может плохо искал, не знаю мануал естественно на англ, тока через переводчика и переводил...
Протестил демона которого создал вот что вышло на работу с бд (redis):
root 4817 50.6 1.9 51340 20864 ? R 04:34 5:19 php /var/www/wpbloger/data/server/daemon/start.php
Не знаю плохо ли хорошо, как сделать, может кто имел уже дела с gearman и уже делал что нибудь подобное?
 
Сверху