
Big_Shark
04.02.2017
16:28:53
login('string', 'password')

Sergey
04.02.2017
16:29:17
ну то есть ты тайп хинтинг юзаешь что бы у тебя в продакшене упало или ты все ж хочешь использовать мощ статического анализа?

Big_Shark
04.02.2017
16:29:24
Ну тут конечно, я бы вообще на ВО глобальное перейти хотел, но пока это очень сложно в данном проекте

Sergey
04.02.2017
16:29:41
я слишком ленив что бы лепить всюду VO

Google

Sergey
04.02.2017
16:29:45
потому хочу элиасы
получу.... ну не сказать что тот же профит но уже немало профита

Big_Shark
04.02.2017
16:30:10

Eugene
05.02.2017
05:59:39
Всем привет. Хочу использовать pthreads. Постоянно выжу ссылки на ограничения при использовании с apache. Не до конца понимаю, какие именно ограничения

Andrii
05.02.2017
06:00:16

Eugene
05.02.2017
06:03:32
мне уже приходилось ими пользоваться, но приложение только api запросы выполняло, обрабатывало данные и возпвращало результат через функцию. Проблем не было. С чем связаны ограничения? Я начинающий разработчик, поэтом прошу отнестись снисходительно к возможным глупостям )

Andrii
05.02.2017
06:09:19

Eugene
05.02.2017
06:11:48
ок, как организовать тогда процесс? надо 2 версии php на сервере? надо 2 сервера? или как-то иначе?

Andrii
05.02.2017
06:12:21
процесс чего? : D

Eugene
05.02.2017
06:16:57
работу с многопоточной версией

Andrii
05.02.2017
06:20:18
скрипт пишешь, запускаешь - вуаля

Eugene
05.02.2017
06:29:44
можно чуть подробнее?
автор расширения говорит, что нельзя напрямую возвращать результат в баузер через echo, и даже в консоль надо выводить осторожно, лучше через специальный метод
я не почувствовал пока этих нюансов на себе
хочу сразу все сделать правильно
как осуществлять взаимодействие между браузером и многопоточной версией?

Google

Vadim
05.02.2017
07:37:32
Сначала вопрос - зачем тебе много потоков в пхп?
Обычно ты не должен этого хотеть

Eugene
05.02.2017
07:48:24
я получаю запрос от пользователя и обрабатываю
обработка включает параллельные запросы в разные места, получение большого количества данных и их обработку, чтобы ускорить, хочу многопоточность

Andrii
05.02.2017
07:52:58

Eugene
05.02.2017
07:56:21
понятно, которое под вебсервером, и приложение, которое демон, будет крутиться на одном сервере? если на одном, их обслуживает один движок php?

Andrii
05.02.2017
07:57:09

Eugene
05.02.2017
07:58:33
если движок 1, то он скомпилирован под многопоточность и подключен pthreads
и вебсервер крутится здесь же
противоречие какое-то?

Andrii
05.02.2017
08:00:41
ну вернее мб не так выражаюсь, у тебя там php-fpm (под апачем фпм же? не юзал апач уже десять тысяч лет) и php-cli, они как бы разные пакеты
тогда получается что два движка

Sergey
05.02.2017
08:02:19
golang бери
либо твои нужны покрывает event loop + очереди

Andrii
05.02.2017
08:03:44

Sergey
05.02.2017
08:06:05
а pthreads не нужен, согласен
ну точнее оооочень редкие кейсы когда оно надо

Eugene
05.02.2017
08:06:23
обработки я уже писал такие, там ничего страшного
обмен данными тоже решается
просто первый вопрос - что и как устанавливать на сервер

Sergey
05.02.2017
08:07:17
у тебя вообще есть опыт работы с потоками?

Eugene
05.02.2017
08:07:23
да

Google

Eugene
05.02.2017
08:07:44
мне с них пришлось начать
)

Sergey
05.02.2017
08:07:52
ну такое
я правильно понимаю что ты хочешь потоки.... в контексте умирающей модели выполнения php + apache
?
ну то есть пришел http запрос, мы родили процесс, начали обрабатывать php, понаражали треды, поделаи вычисления какие-то, собрали результат, убили треды, убили процесс.
или ты уже дошел что pthreads для php-cli и ты будешь писать демон отдельный который с твоим web-приложением будет связан вещами вроде zeromq/beanstalkd?

Eugene
05.02.2017
08:10:18
второй вариант, но технологии еще не искал
только нигде не найду объяснений, почему только cli
хотя первый вариант был бы удобнее )

Pavel
05.02.2017
08:18:50
Eugene http://stackoverflow.com/a/33772178 вот что пишет автор pthreads

Eugene
05.02.2017
08:33:07
понятно, что не стоит совмещать в одном приложении взаимодействие с пользователем и обработку данных
теперь хочу понять, как эти задачи совмещать в рамках 1 сервера

Andrii
05.02.2017
08:39:42

Eugene
05.02.2017
08:47:07
я думал складывать запросы в базу и забирать уже демоном, возвращать туда же

Sergey
05.02.2017
08:50:31

Eugene
05.02.2017
08:57:04
обязательно ли для этого два разных движка иметь? можно ли одним обойтись?

Sergey
05.02.2017
09:46:53
что есть "движек"?

Eugene
05.02.2017
09:48:08
интерпретатор

Pavel
05.02.2017
10:03:47
The most recent versions of pthreads (for PHP7) prohibit execution anywhere but CLI.

Sergey
05.02.2017
10:12:05
у тебя если php-fpm установлен то php-cli тоже установлен

Google

Sergey
05.02.2017
10:12:18
ну короч че париться то
но я все еще считаю что pthreads тебе ничего не дадут

Sergey
05.02.2017
10:12:59

Eugene
05.02.2017
10:13:14
я сейчас представляю такую структуру
nginx + uWSGI + php

Sergey
05.02.2017
10:13:29
бедные разрабы которым достанется это в наследство

Eugene
05.02.2017
10:13:54
почему?
я учусь, это не достанется никому )

Sergey
05.02.2017
10:15:46

Admin
ERROR: S client not available

Sergey
05.02.2017
10:16:04
я так и не добрался потыкать

Vadim
05.02.2017
10:17:15
костыли в стиле пхп - отправить все в кролика, перелопатить очередь из кролика тучей обычных однопоточных демонов, сложить куда-нибудь результат, забрать результат :)

Sergey
05.02.2017
10:17:38
я бы не сказал что это кастыли)

Vadim
05.02.2017
10:18:09
демонов держать под супервизором, демон сам себя харакирит после пары сотен обработок, супервизор поднимает свеженький демон без протечек
на всяких там рубях есть всякие сайдкики и прочие celery на питонах, на пхп как-то не зашло вроде, слышал, что gearman неочень, но самому не доводилось его трогать

Sergey
05.02.2017
10:20:33
а причем тут gearman к php?

Sergey
05.02.2017
10:21:31
>упервизор поднимает свеженький демон без протечек
а потом говорят на всех конфах что "пхп течет!!11"

Vadim
05.02.2017
10:21:32
слышыл раньше как-то модно было его юзать
ну, если аккуратно писать, то не течет :)

Eugene
05.02.2017
10:23:27
я правильно понимаю, что в такой конфигурации можно один интерпретатор использовать?
и почему pthreads бесполезен?

Google

Sergey
05.02.2017
10:23:45
у меня демоны в докер контейнере стартуют так что лепить сверху еще и супервизор смысла нет, докер демон и там будет перезапускать чуть что пойдет не так.
и по сути интерпритатор будет один - будут разные инстансы оного + разные SAPI
будешь держать пул соединений с базой в каждом треде + очередь запросов какая-то?
ну то есть... мне реально интересно что ты собрался делать с потоками


Eugene
05.02.2017
10:26:55
потому что я еще не прояснил для себя этот момент, если бы я на пользователя и на обработку использовал разные языки, то все понятно было бы
но язык один
надо ли его конфигурировать по разному или один экземпляр работать будет?

Sergey
05.02.2017
10:28:12

Pavel
05.02.2017
10:31:57

Sergey
05.02.2017
10:32:25
лики в php тоже есть но как бы... где не без этого

Sergey
05.02.2017
10:32:58

Sergey
05.02.2017
10:35:14
не могу найти открытых ишусов
но они бывают открываются, потом закрываются

Sergey
05.02.2017
10:46:26
у GC есть особенности. например что ему нужно в руте собрать 10к референсов и только потом триггерится gc
но особо пытливые люди могут зафигачить "бенчмарк" на 1к обьектов и бегать орать "пхп течет!"
при чем алгоритм почти не менялся с 5.3 версии пхп

Vadim
05.02.2017
10:48:55
слышл только, что с кольцевыми ссылками что-то пофиксили, после чего он еще меньше стал течь

Sergey
05.02.2017
10:49:16
до 5.3 он не собирал "островки"

Sergey
05.02.2017
10:49:31
до 5.3 он не хэндлил вообще циклические ссылки
но это было хз сколько лет назад