![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
OverClocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 12.11.2005 Репутация: нет Всего: нет |
Коллеги, возникла такая проблема: есть скрипт сайта, а есть задание, которое должно периодически обновлять некоторые записи залогиненного пользователя. Т.е. скрипт в определённой ситуации при навигации пользователя должен автоматически посылать сигнал (триггер, если хотите) этому заданию.
Можно, конечно, сделать так, чтобы задание выполнялось вместе со скриптом, но тогда оно будет очень тормозить процесс загрузки сайта, а на содержание это влияет весьма косвенно. (не страшно, если записи отображаются некоторое время старые) cron использовать в данном случае также нерационально, потому что для каждого пользователя задание выполняется своё (А может и вовсе не выполняться. Чего его просто так гонять то?) Надеюсь, объяснил понятно. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
давай конкретнее.
|
|||
|
||||
OverClocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 12.11.2005 Репутация: нет Всего: нет |
Что именно нужно конкретнее?
Необходимо запустить часть скрипта так, чтобы она не тормозила обшую загрузку. Т.е., пожалуй, в фоновом режиме. |
|||
|
||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
т.е. как - "своё"? абсолютно уникальный динамически генерируемый код или все же один и тот же алгоритм, один и тот же код, просто для каждого пользователя формируются разные входные данные под этот "одинаковый скрипт"?
cron. |
||||
|
|||||
OverClocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 12.11.2005 Репутация: нет Всего: нет |
Формируются различные входные данные. Дело в том, что это обновление происходит достаточно редко у пользователя, при этом, если оно происходит, обновить это всё надо как можно скорее. Вот поэтому запускать каждые 5 минут скрипт по cron, который будет вхолостую работать 90% времени, имхо, не очень хорошо. Можно сделать ещё демон. Но это как-то для эстетов... |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
OverClocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 12.11.2005 Репутация: нет Всего: нет |
Спасибо, интересно! Слышал раньше, но не пользовался. Будем пробовать.
|
|||
|
||||
mcTep |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 25.2.2009 Репутация: нет Всего: 6 |
||||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Реальные примеры:
-- загрузка видео пользователем с пережатием его в формат, удобный для хранения. -- отправка пользователем сообщения, которое потом отправляется дальше через медленное API -- подготовка отчета на ольшом объеме данных -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
mcTep |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 25.2.2009 Репутация: нет Всего: 6 |
Может можно в нужный момент по curl запускать скрипт какой-либо?
или сокеты http://habrahabr.ru/blogs/php/67180/ Это сообщение отредактировал(а) mcTep - 25.1.2011, 20:15 |
|||
|
||||
topy |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
Запускайте асинхронно AJAX`ом в фоне
|
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
И каким образом это применимо? К чему тут вообще работа с сетью? AJAX в таких задачах может пригодиться для опроса статуса выполняемой задачи, но ни в коем случае не как процесс, в рамках которого задача будет выполняться. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
L1ke2d3v |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 29.12.2010 Репутация: нет Всего: нет |
Gearman , для тебя в самый раз.
|
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
У меня похожая задача, потому не думаю что нужно создавать новую тему. Опишу так же вкратце
Пользователь производит какое-то действие на сайте, и в ответ на это действие нужно произвести ряд ресурсоемких операций, так что синхроннно это делать нельзя. Сейчас я решаю эту проблему с помощью cron, но есть определенные проблемы. Основная из них что есть задержка до 5 минут между действием пользователя и результатом тяжелой операции. Потому сейчас рассматриваю вариант с брокером очередей (конкретно RabbiMQ). При действии пользователя записываю сообщение в очередь, с этим проблем нет. Следующим шагом есть создание скрипта обработчика очереди. Вот тут и возникает вопрос. У меня уже много кода который хотелось бы использовать в обработчике очереди, но он достаточно тяжелый (используется ORM) и закидать его в демон возможно не очень хорошое решение, особоенно если учесть что демон Опыта с использованием демонов нет, так что хотелось бы услышать может кто уже встречался с подобной задачей? И может обработчик в виде демона не единственное хорошое решение? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Демон вполне подойдет.
Тем более что есть реализации на php и он уже не так течет как раньше. Плюс есть fpm. Так что можно даже не мучиться с кроном. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
Сегодня выложил на production использую http://pear.php.net/package/System_Daemon, так как показался самым простым, но не разобрался как реализовать многопроцесорность (пока вердикт, что он не умеет) Работает пол дня зажрал 20 Мб оперативки (при запуске было 16). Не понял для чего упоминание об fpm |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
Fortop,
Я знаю что такое fpm, вопрос был в том как он может мне помочь решить мою задачу. Вы же предложыли как вариан, или что? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Я конечно предложил вариант. Но если вы не понимаете чем может помочь fpm прочитав, что там написано.... то вероятно он вам не поможет... А вообще он позволяет управлять воркерами для выполнения задач и минимизирует время их инициализации. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Я вот тоже не понимаю каким образом управление web-веркерами может помочь для управления фоновыми задачами и демонами никак не привязаными к apache. Так что давайте подробнее -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
Я использую fpm в связке с nginx уже где-то год, и никак в голову не приходило его использовать для чего другого кроме как application сервера за nginx. Раскажие подробнее (ну или дайте ссылку где можно больше об этом почитать) как он может помочь в работе с многопроцесорным демоном, так как уже говорил выше не думаю что многопроцесорного демона можно сделать с помощью System_Daemon. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
У нас есть мастер-процесс. А есть собственно воркеры, выполняющие задания в виду отсутствия в php потоков. fpm дает инструменты для организации всего этого, плюс уменьшает затраты на инициализацию процессов. Добавлено через 1 минуту и 1 секунду Забыл уточнить. По умолчанию предполагается многопоточная обработка. В случае единственного процесса fpm скорее всего не нужен. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
Прошу прощения, но мы все еще говорим об одном и том же? я Вам говорил о том что мне нужно было сделать скрипт, который должен был работать в фоновом режиме а вы мне говорите о том что php может работать в режиме fcgi и есть очень удобный инструмент, который позволяет всем этим удобно управлять. мне не нужно взаемодействие из веб-сервером |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
![]() Отстаньте от меня. Я НИГДЕ не говорил что вам нужно взаимодействовать с веб-сервером. То, что у вас в голове fpm связан исключительно с nginx это не мои проблемы. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
Fortop, без комментариев. <sarcasm>Спасибо за ответы</sarcasm>
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Всегда пожалуйста. Sapienti sat. Но вам увы не sat, а значит.... -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
ну у меня улучшенный fastcgi тоже неразрывно связан с вебсервером. Думаю, далеко не у меня одного. Так что, будьте добры, просвятите нас темных. Думаю, многие будут благодарны за реальный пример использования fpm для cli скриптов. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Многопоточный датамайнинг. У меня как раз на этот месяц стоит в очереди сравнение тредовой модели питона с демоном на php с fpm. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Это ваше отношение к предложению подождать в течении месяца? ![]() Раньше вы более уравновешены. И более.... сообразительны что ли ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Т.е. вы пока что только _думаете_, что fpm вам как-то может поможет, и проверите это через месяц? ) Ну так ждем ответа на протяжении уже недели, а в ответ все общие фразы, т.е. bullshit Я сразу же сказал что не представляю как fpm может быть использован в cli скриптах. Собственно, пытаясь понять это и поддерживаю жизнь темы. Судя по тому, что больше никто в теме не пишет, то этим сакральным знанием (или догадками) обладаете только вы. Жаль поделиться не спешите.
Кстати, было бы непохо пример многопоточности в php. Думаю, удивите очень многих показав пример. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
||||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Fortop! Fortop! Fortop! - скандировали жаждущие новых знаний.
// добавим смысла в сообщение Если вам нужно реализовать очередь с "мгновеной" реакцией, но нет желания разворачивать MQ сервер, то стоит присмотреться к вашей СУБД -- возможно, она имеет механизм LISTEN/NOTIFY. 100% поддерживают этот механизм postgre и redis -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
? Ссылку что я давал на fpm вы вовсе не читали? Это из разряда смотрю в книгу - вижу фигу?
Ох, таки я прав про книгу. Если для вас открытие(хотя с чего бы вдруг? старческий склероз?), то: http://www.ibm.com/developerworks/ru/libra...-php-multitask/ Естественно речь не идет о threads. Но умному достаточно для понимания, куда делся ваш интеллект? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
solenko |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Для вас неблокирующий ввод-вывод и мультипоточноть дествительно одно и то же? Интересно, тоже превратится в краулера на curl_multy_* ?
Видимо да. В абсолютно всех ссылках о fpm говорится что это улучшенный fastcgi. А вы так и не смогли привести пример использования fpm для CLI. Добавлено через 1 минуту и 12 секунд Я не понимаю, неужели так сложно привести пример а не пытатся рассказать мне, что я не умею работать с литературой? -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Омг. Это был всего лишь пример. И курл тут вовсе не причем. Только из уважения к вашему возрасту(??? ![]() Многопоточная обработка на php отсутствует как класс. Любые упоминания многопоточности в php чаще всего это curl_multi или stream_select(для неблокирующих сокетов), и реже многопроцессный демон с воркерами. Естественно что это не классические реализации "многопоточности", но если мозг не совсем усох, то человек помнит, что php не поддерживает многозадачности в потоках (threads). Это лирика, и я сильно сомневаюсь что вы ее не знали.
У меня есть в текущей реализации несколько демонов со сторонним worker-manager (на Си), работает вполне отлично и давно. Реализовывать подобное исключительно для вас - у меня нет ни времени ни желания, но в списке задач есть одна на работу с fpm о чем я вам и сказал. Так что, если бы вы не ерепенились, а спокойно подождали, то получили бы желаемое (ну или посыпание головы пеплом с моей стороны, что маловероятно, но возможно ![]() Но у вас действительно какие-то сложности с пониманием. Раньше у нас с вами таких проблем не наблюдалось ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
solenko |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Я то вроде и знаю, но вы так упорно говорили именно о многопоточности, что варианта у меня было два -- либо что-то поменялось, либо вы используете неправильный термин. Таки неправильный термин.
Ну так спора о том, что php демоны работают и не было.
Я так и не получил ответа каким образом fpm поможет без использования FastCGI. Пока все это звучит как "я думаю мне поможет fpm, но как -- не знаю". Расскажите хоть о том, как по-вашему должно повлиять использование fpm и за счет чего. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Собственно для контроля за обработчиками. А для чего еще? ![]() Детали? Их пока нет, но мануал звучит более чем обнадеживающе. Работа без веб-сервера по fcgi протоколу думаю тоже особых сложностей вызвать не должна. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Т.е. вы таки хамили мне и Stark основываясь исключительно на мануал (вернее вашу его интерпретацию). Ловите минус. Если появятся хоть какие-то детали, имеющие практическое потверждение, с удовольствием компенсирую его плюсом. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Опа? А вы готовы привести доказательства моей неадекватной реакции на свое свинство? ![]() Быть может я "в порыве страсти" что-то упустил? ![]() И это... Не напрягайтесь ибо сугубо насрать. Факты они несколько важнее вашей личной оценки ![]() Но это так... лирика. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
||||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Не понял вопроса. Вам четкие ссылки на хамство? И о каком моем свинстве речь? Вот если бы изначально было высказано в тоне "я думаю это может помочь", а не "я знаю, а если вы не понимаете, то тупые", то и вопроса не возникло бы. Кроме того, задумайтесь о том, что форум читают многие. В частности те, кто не в состоянии оценить адекватность ваших догадок. И онм могут потратить не один час на попытку прикрутить fpm к сути темы. Давайте не будем тратить их время, ок? -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
так ну что. Дошло дело до непосредственной реализации, которая сейчас в процессе.
Для желающих кстати. http://efiquest.org/2011-10-22/55/ -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Stark |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
И какое это имеет отношение к теме?
а HTTP сервер на php как по мне это перебор) Это сообщение отредактировал(а) Stark - 12.4.2012, 12:18 |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Я вам уже писал - для вас... никакого. Идея может помочь тому, кто понимает как ее можно использовать. Это не про вас. Интересующимся. Основной эффект, ради чего все затевалось. workermgr la = 1.5-1.8 php-fpm la = 0.6-0.9 Это сообщение отредактировал(а) Fortop - 12.4.2012, 23:30 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Stark |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 18.2.2008 Репутация: нет Всего: 1 |
Народ, хоть кто-то адекватный понимает о чем он?
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |