Pull to refresh

Comments 6

Прочитал статью, остался озадачен вопросом:
почему нельзя это сделать боле простым способом, а именно размножить демонов?

Есть клиент, он оставляет запрос, запрос падает в базу, клиент получает отчёт.
Но: после этого ещё N времени мы обрабатываем чужие запросы, включая запрос клиента.

Если обработчику надо — он оставляет запрос/создаёт новые на следующую итерацию обработки.
Нагрузка на сервер вычисляется самим сервером по косвенным признакам: локу файлов, кол-ву файлов кэша и т.п. в зависимости от реализации. Может там 1 запрос в 10 секунд — и то не лимит, а может обсчёт в 50мс после запроса систему положит.

Отчёт клиента самостоятельно через n секунд пинает сервер, уточняя что там с обработкой.
Сервер огрызается «приходи завтра» «ещё 10 сек» и что-то там считает.

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

Ну в самом начале статьи же написано, что много процессов — это дорого.

Wano987
То, что Вы описываете, автор «упомянул» в самом начале статьи (пятый абзац).
Поэтому для асинхронной обработки каких-то тяжёлых задач используется система на базе очередей (Gearman, AMQP, ActiveMQ и т. д.).

Предложение всего лишь из четырёх слов, а по этой теме можно написать книгу.

Да, ладно вам, не переусложняйте. Книгу можно написать по потокам. А уже потом отдельным приложением рассказать о реализации потокобезопасного кода в расширениях PHP.

Поэтому авторы PHP (преимущественно движка Zend) решили сделать цельный движок без потоков.

Не думаю, что они что-то там решали. Просто делали самый простой рабочий вариант.
Может хватит использовать PHP для того, для чего он не предназначен?
PHP is a popular general-purpose scripting language
Sign up to leave a comment.