оффтоп из «php программист»

cDLEON

Онанист РНРСlub
В тоже время ни кто не мешает вместо phpdaemon использовать другие решения на других языках. Есть библиотеки и по-стабильнее, а в питоне, например, есть ещё чудо-генераторы, которые позволяют писать конструкции вида:
Код:
response = yield db.query("SELECT 'blabla'");
print response
И в этом месте будет полноценный неблокирующий асинхронный код.
 

MiksIr

miksir@home:~$
мне кажется, встроить php в nginx - более стабильное решение, чем воевать с libevent и дебажить не слишком развитый phpdaemon,
основной оверхед не в пересылке nginx-fpm, а в инициализации скриптов
Лок внутри пхпдемона - это лок пхп, а лок внутри энжейникса - это лок всему воркеру, т.е. и по статике тоже. Так что риск больше. Ну не говоря уже о том, что наверняка пойдут какие-то утечки памяти и т.п. которые решать придется только HUP-ом энджейниксу.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
MiksIr КО у нас, конечно, фиксер :) но ...
для статики перед пхпдемоном ты отдельный сервер поставишь, а поставить nginx load balancer-ом перед nginx/php-воркерами религия не позволяет?
или лок вокера пхпдемона - это не лок всего воркера?
или утечки в воркерах пхпдемона ты решишь без их рестарта?
или пхпдемон надежней, чем nginx как load-balancer?
или при желании можно разнести воркеров phpdaemon-а по разным серверам, как в моем случае?

можно такой проектик сделать на github, например
всего-то надо несколько shell-овских скриптов и embed-нуть php в nginx
правда, коммерческой задачи для него нет, абстрактного коня обычно делать влом
 

Absinthe

жожо
ну если ты не знаешь значение слова embed
С учетом того, что в этой теме я первым упомянул слово embedding, данное высказывание неуместно.

И в этом месте будет полноценный неблокирующий асинхронный код.
Подробнее можно?

всего-то надо несколько shell-овских скриптов и embed-нуть php в nginx
Ограничения будут. Функции-обработчику будет передаваться request-объект, и тупо zend_eval_string этой функции. Вот только если понадобится работа с базой...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Absinthe ты выспись лучше ... мне твой пост кажется набором бессвязных слов
 

fixxxer

К.О.
Партнер клуба
grigori

хехе с таким пхп придется оооочень аккуратным быть. Хотя и с phpDaemon так же, конечно. В итоге в реальной жизни все с большой вероятностью сведется к nginx-у, проксирующему на другой nginx (с php), за что боролись на то и напоролись ;))

Ну и далеко не все задачи io_bound >> cpu_bound, а только для такого подкласса это все имеет смысл
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
fixxxer конечно, я и рассматриваю это именно как альтернативу phpdaemon, не php-fpm
по сути, вся экономия будет на истанциировании классов и подключении к БД, это узкий круг задач
 

MiksIr

miksir@home:~$
для статики перед пхпдемоном ты отдельный сервер поставишь, а поставить nginx load balancer-ом перед nginx/php-воркерами религия не позволяет?
или лок вокера пхпдемона - это не лок всего воркера?
Именно религия. Религия не городить огород. Встраивать php в nginx только ряди того, что бы nginx послужил менеджером запросов? Детский сад.

или утечки в воркерах пхпдемона ты решишь без их рестарта?
Решу на уровне менеджера пула, который будет перезапускать воркер (один, а не весь пул воркеров). Т.е. тут я волен делать что я хочу. В случае nginx - ограничен тем, что умеет nginx.
или пхпдемон надежней, чем nginx как load-balancer?
А причем тут лоад балансер? Балансер - это балансер, а php - это php. Или мы встраиваем php непосредственно _в балансер_ для выполнения на нем простой логики или смысла городить огород нет.
А особой разницы в надежности между libevent и nginx для приема соединения и выполнения не вижу. Все-равно слабо звено будет php.
 

cDLEON

Онанист РНРСlub
fixxxer конечно, я и рассматриваю это именно как альтернативу phpdaemon, не php-fpm
по сути, вся экономия будет на истанциировании классов и подключении к БД, это узкий круг задач
Ни х*ра ты не рассматриваешь, уж извини. Кроме классов и БД есть довольно тормозная операция создания потока + кусок данных можно прямо в памяти держать и обновлять только тогда, когда нужно! А можно вообще сделать что то похожее на мастер\слэйв и у нас получится полностью самодостаточное приложение, которое будет требовать запросы к базе на чтение лишь только при инициализации. А простаивающие ресурсы можно чем-нибудь другим занять!
Подробнее можно?
Да там всё просто. Имеется асинхронная библиотека. В которой в метод на вход ожидается калбек. Калбек, естественно, вызывается только если библиотека вернула какой то результат.
Вот вся эта реализация скрыта за генератором. Т.е. не явным калбеком, в данном случае, будет код после генератора.
 

AmdY

Пью пиво
Команда форума
fixxxer
ты же понимаешь, что по ссылке злой троллинг, не нужно так, cDLEON делает серьёзные вещи, пытаясь проявить реальные недостатки php, генетические так сказать. Это интересно, хотя, конечно, можно всегда отмахнуться - у нас и так всё работает и не е*ёт, мы ентерпрайс разработчики.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
fixxxer
ты же понимаешь, что по ссылке злой троллинг, не нужно так, cDLEON делает серьёзные вещи, пытаясь проявить реальные недостатки php, генетические так сказать
То что у тебя нет жабр, что бы под водой дышать, это тоже генетический недостаток? Или они просто не нужны, потому что ты под водой не живешь, а если надо под воду — можно и акваланг одеть
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
флоппик главное - что мы больше не будем зло троллить, а то не узнаем о серьезных вещах: как держать данные в памяти, как экономить на форках, чем занять простаивающие ресурсы
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
если уж нужен афигенный тру-файлоад, то наверное это должно быть частное решение под конкретную платформу, под конкретную задачу, дабы использовать все возможности межпроцесного взаимодействия, и более продуктивные объекты ядра, типа IoCompletionPort, thread pool
 

cDLEON

Онанист РНРСlub
grigori
самое главное, что бы вы разводить слои, по-сути, не нужной архитектуры, знали как. Удачи в работе.
 

baev

‹°°¬•
Команда форума
это раньше программисты были инженерами, а недавно я сказал, что я инженер и думаю как ученый - так меня странным посчитали, и тоже адекватный и хороший человек
— про разницу между «инженером» и «механиком»: http://www.brandonsavage.net/the-mechanics-of-code/
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ага :) The software developer must be both at different times
вчера только попросил человека не определять меня терминами из классической экономики
 
Сверху