Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отложенное задание в фоновом режиме 
:(
    Опции темы
OverClocker
Дата 22.1.2011, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 12.11.2005

Репутация: нет
Всего: нет



Коллеги, возникла такая проблема: есть скрипт сайта, а есть задание, которое должно периодически обновлять некоторые записи залогиненного пользователя. Т.е. скрипт в определённой ситуации при навигации пользователя должен автоматически посылать сигнал (триггер, если хотите) этому заданию.

Можно, конечно, сделать так, чтобы задание выполнялось вместе со скриптом, но тогда оно будет очень тормозить процесс загрузки сайта, а на содержание это влияет весьма косвенно. (не страшно, если записи отображаются некоторое время старые)

cron использовать в данном случае также нерационально, потому что для каждого пользователя задание выполняется своё (А может и вовсе не выполняться. Чего его просто так гонять то?)

Надеюсь, объяснил понятно.
PM MAIL WWW   Вверх
skyboy
Дата 22.1.2011, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



давай конкретнее.
PM MAIL   Вверх
OverClocker
Дата 23.1.2011, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 12.11.2005

Репутация: нет
Всего: нет



Что именно нужно конкретнее? 
Необходимо запустить часть скрипта так, чтобы она не тормозила обшую загрузку. Т.е., пожалуй, в фоновом режиме.
PM MAIL WWW   Вверх
skyboy
Дата 23.1.2011, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



Цитата(OverClocker @  22.1.2011,  17:37 Найти цитируемый пост)
cron использовать в данном случае также нерационально, потому что для каждого пользователя задание выполняется своё

т.е. как - "своё"? абсолютно уникальный динамически генерируемый код или все же один и тот же алгоритм, один и тот же код, просто для каждого пользователя формируются разные входные данные под этот "одинаковый скрипт"?
Цитата(OverClocker @  23.1.2011,  08:50 Найти цитируемый пост)
Необходимо запустить часть скрипта так, чтобы она не тормозила обшую загрузку.

cron.

PM MAIL   Вверх
OverClocker
Дата 23.1.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 12.11.2005

Репутация: нет
Всего: нет



Цитата(skyboy @  23.1.2011,  10:17 Найти цитируемый пост)
абсолютно уникальный динамически генерируемый код или все же один и тот же алгоритм, один и тот же код, просто для каждого пользователя формируются разные входные данные под этот "одинаковый скрипт"?

Формируются различные входные данные. Дело в том, что это обновление происходит достаточно редко у пользователя, при этом, если оно происходит, обновить это всё надо как можно скорее. Вот поэтому запускать каждые 5 минут скрипт по cron, который будет вхолостую работать 90% времени, имхо, не очень хорошо. 

Можно сделать ещё демон. Но это как-то для эстетов...
PM MAIL WWW   Вверх
solenko
Дата 23.1.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



Message queue
Ну а какую из реализаций выбирать (AMQ, RabbitMQ, etc) -- дело ваше.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
OverClocker
Дата 23.1.2011, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 12.11.2005

Репутация: нет
Всего: нет



Спасибо, интересно! Слышал раньше, но не пользовался. Будем пробовать.
PM MAIL WWW   Вверх
mcTep
Дата 25.1.2011, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



Цитата(OverClocker @  23.1.2011,  10:40 Найти цитируемый пост)
если оно происходит, обновить это всё надо как можно скорее.


А нельзя сделать это все в тот момент когда оно происходит? 

Просто мне интересна реальная ситуация, когда необходима именно такая задача. Не могли бы вы рассказать о ней?
PM MAIL   Вверх
solenko
Дата 25.1.2011, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



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


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
mcTep
Дата 25.1.2011, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 25.2.2009

Репутация: нет
Всего: 6



Может можно в нужный момент по curl запускать скрипт какой-либо?

или сокеты

http://habrahabr.ru/blogs/php/67180/

Это сообщение отредактировал(а) mcTep - 25.1.2011, 20:15
PM MAIL   Вверх
topy
Дата 26.1.2011, 08:57 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 18.2.2008

Репутация: нет
Всего: 1



Запускайте асинхронно AJAX`ом в фоне
PM MAIL   Вверх
solenko
Дата 26.1.2011, 09:24 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 2
Всего: 67



Цитата(mcTep @  25.1.2011,  19:15 Найти цитируемый пост)
Может можно в нужный момент по curl запускать скрипт какой-либо?
или сокеты
http://habrahabr.ru/blogs/php/67180/

И каким образом это применимо? К чему тут вообще работа с сетью?

Цитата(topy @  26.1.2011,  07:57 Найти цитируемый пост)
Запускайте асинхронно AJAX`ом в фоне 

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


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
L1ke2d3v
Дата 28.1.2011, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 29.12.2010

Репутация: нет
Всего: нет



Gearman , для тебя в самый раз.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Stark
Дата 12.2.2012, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 18.2.2008

Репутация: нет
Всего: 1



У меня похожая задача, потому не думаю что нужно создавать новую тему. Опишу так же вкратце

Пользователь производит какое-то действие на сайте, и в ответ на это действие нужно произвести ряд ресурсоемких операций, так что синхроннно это делать нельзя.

Сейчас я решаю эту проблему с помощью cron, но есть определенные проблемы. Основная из них что есть задержка до 5 минут между действием пользователя и результатом тяжелой операции.

Потому сейчас рассматриваю вариант с брокером очередей (конкретно RabbiMQ). При действии пользователя записываю сообщение в очередь, с этим проблем нет.

Следующим шагом есть создание скрипта обработчика очереди. Вот тут и возникает вопрос. У меня уже  много кода который хотелось бы использовать в обработчике очереди, но он достаточно тяжелый (используется ORM) и закидать его в демон возможно не очень хорошое решение, особоенно если учесть что демон

Опыта с использованием демонов нет, так что хотелось бы услышать может кто уже встречался с подобной задачей?
И может обработчик в виде демона не единственное хорошое решение?
PM MAIL   Вверх
Fortop
Дата 26.2.2012, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 1
Всего: 42



Демон вполне подойдет.
Тем более что есть реализации на php и он уже не так течет как раньше.
Плюс есть fpm. 

Так что можно даже не мучиться с кроном.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0966 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.