Обмен данными между потоками

Димон

Новичок
Обмен данными между потоками

Как можно по-хорошему обмениваться данными между "потоками" в php? Например, форкаются, два php-процесса и из одного передавать по PID'у какие-то данные в другой процесс без посредников типа базы данных или простых файлов.

Пока остановился все-таки на посреднике в виде memcache. Продолжаю гуглить...
 

phprus

Moderator
Команда форума
Ключевое слово: "Interprocess Communication" (IPC), а так-же гугли про разделяемую память, семафоры, сокеты и т.д.
 

nerezus

Вселенский отказник
Димон по хорошему сначала учится матчасть, чтобы не называть потоками что попало.
Ты же не называешь батон экскаватором, а задницу транспортиром?
 

Димон

Новичок
Хорошо, это не поток. Это отдельный процесс.
Матчасть подучу на досуге. Но сначала с потоками-процессами разъипаться надо.

-~{}~ 02.02.10 22:10:

Автор оригинала: phprus
Ключевое слово: "Interprocess Communication" (IPC), а так-же гугли про разделяемую память, семафоры, сокеты и т.д.
А вот за это спасибо. Буду гуглить в этом направлении.

-~{}~ 02.02.10 22:11:

Автор оригинала: nerezus
Димон по хорошему сначала учится матчасть, чтобы не называть потоками что попало.
Ты же не называешь батон экскаватором, а задницу транспортиром?
А транспортир то похож на задницу. В профиль :)))
 

Alexandre

PHPПенсионер
Как можно по-хорошему обмениваться данными между "потоками" в php?
никак, потоков в пшп нет
апример, форкаются, два php-процесса и из одного передавать по PID'у какие-то данные в другой процесс
если ты хочешь что-то форкнуть из WEB процесса, то ты глубоко заблуждаешься в архитектуре своего приложения, и вообще что у тебя за винегрет в голове?
опиши конечную задачу и тебе помогут найти правильное решение, иначе тебе здесь такого насоветуют....
 

nerezus

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

флоппик

promotor fidei
Команда форума
Партнер клуба
А мне интересно, откуда вы вообще взяли что ТС что то форкает из веб процесса?
 

Димон

Новичок
Автор оригинала: nerezus
Мне вот интересно, почему сотни пионеров пытаются применить пхп куда только можно, и лишь у немногих из них появляется мысль, что задача куда проще и быстрее решается с помощью иных средств.
Ок, раскрою карты: мне надобно "повесить" с десяток демонов-парсеров. Я решил сделать быстро и просто - запустить отдельными php процессами. Если вы подскажете лучший вариант, то это будет здорово. Сразу оговорюсь, что крон здесь не подходит.
 

Димон

Новичок
Автор оригинала: Alexandre
никак, потоков в пшп нет
если ты хочешь что-то форкнуть из WEB процесса, то ты глубоко заблуждаешься в архитектуре своего приложения, и вообще что у тебя за винегрет в голове?
опиши конечную задачу и тебе помогут найти правильное решение, иначе тебе здесь такого насоветуют....
Здесь из веб-процесса не надо ничего форкать.
Я знаю что в пыхе нет потоков. Но это не страшно, т.к. есть куча других многопоточных языков. Просто на пыхе кодить легко, быстро и приятно.

В общем задача была следующая:

Нужны демоны для сборки данных с нескольких сайтов в течение дня с коротким интервалом (1 - 5 мин, т.е. для каждого по-разному). Для некоторых из них нужно устанавливать авторизованное соединение по защищенному каналу курлой или сокетом и поддерживать это соединение, отправляя запрос на конкретный адрес каждые 10-30 секунд, иначе сессионый ключ аннулируется. При обработке сайтов неизбежны такие неприятности, как зависание запроса, сбой интернет соединения, задержка ответа с сервера и т.п. И здесь один обработчик не должен прерывать другой, т.е. если "завис" один сайт, то другие 10 должны продолжать обрабатываться. Курла с мультизапросами не подходит, т.к. 1) нужна строгая очередность, которая неизбежно приведет к задержке других обработчиков 2) курла не хочет работать с сертификатом без приватного ключа (вдаваться в подробности не буду все есть здесь: http://curl.haxx.se/mail/lib-2009-12/0266.html). Также здесь не будет чумовой нагрузки на сервер, поэтому пых-демоны прекрасно подойдут.

В общем вопрос-то можно считать закрытым. Заюзал мемкашу.
Почти все готово и нормально работает. Надо только за логами последить. Баги они же всегда есть...

-~{}~ 03.02.10 03:43:

Автор оригинала: grigori
Димон
fpm-патч тебе поможет :)
Fpm веселая тема. А вообще для нагруженных сайтов лучше писать на джаве. Как-то выбирали на чем писать модуль, который будет очень нагружен, тестили php, питон и джаву. Джава показала результаты в три раза выше чем пых и почти в два раза выше чем питон.
 

Alexandre

PHPПенсионер
Джава показала результаты в три раза выше чем пых и почти в два раза выше чем питон.
на старых серверах и версиях - была в 5 раз шустрея пыха

-~{}~ 03.02.10 13:00:

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