![]() |
Модераторы: 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. Так что можно даже не мучиться с кроном. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |