Форум → Программирование → PHP для идиотов → Выполнение заданий по времени (не cron).
Выполнение заданий по времени (не cron).
-
Возникла задача сделать у пользователей выполнение заданий по времени, как примитивное "начало 15,00 каждые два дня", так и расписание по неделям, а то и месяцам. Мне что для каждого задания таймер запускать? А как же тогда сервер? А если 100 000 пользователей? А как же тогда сервер?
Думается в базу добавлять задание type, data, date, interval user, где код задания, дополнительная информация или данные к заданию, дата и время выполнения, интервал в секундах, пользователь. А больше ничего не думается…С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
11 февраля 2010 г. 8:53, спустя 10 минут 17 секунд
cron + perl/php/python/bash скрипт для проверки наличия заданий на текущий период и их выполнения. Задания, в большинстве случаев, можно выполнять ночью или в период наименьше посещаемости на сайте.
Можно конечно при каждом запуске скрипта на самом сайте проверять есть ли задания, и если есть, выполнять, но это полный бред, если посетителей нет, то ничего выполено не будетWork, buy, consume, die -
11 февраля 2010 г. 9:58, спустя 1 час 4 минуты 33 секунды
Совсем не бред. Имеет смысл проверять задания обоими способами. Для конкретного пользователя в момент, например, его авторизации. А по крону в часы с низкой загрузкой проверять всю оставшуюся очередь.
Если пользователь заходил, его задания проверялись, в таблице проставилось время этой проверки. Когда наступает время "C" скрипт смотрит у кого с последней проверки интервал еще не прошел и этого пользователя игнорирует.
К примеру: система приема заказов должна высылать извещения на e-mail об изменении состояния заказов, но не чаще 1 раза в 24 часа. Если пользователь сам зашел, конечно сводка изменений должна собраться прямо сейчас, значит в ближайший сеанс рассылки его извещать не понадобится. Для этой системы «очередь заданий» это просто таблица пользовательских профилей с полем «время последней проверки заказов».ιιlllιlllι унц-унц -
11 февраля 2010 г. 10:03, спустя 5 минут 9 секунд
А если критичность времени есть, например смс- рассылка? Каждый час по крону выполнять проверку на время запланированого задания и выполнять если время равно?С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
11 февраля 2010 г. 10:07, спустя 3 минуты 39 секунд
artoodetoo, ну вообще в чем-то ты прав, но смысла нету, на мой взгляд, делать проверку на самом сайте, лишний код писать, отлаживать. Все равно кроном все будет выполнено =)
ivanscm, а какже, только нужно ещё сделать проверку на наличие уже запущенного скрипта, чтобы параллельно не делать одно и тоже. Вдруг скрипт за час не успел отработать…Work, buy, consume, die -
11 февраля 2010 г. 10:10, спустя 3 минуты 34 секунды
если время больше или равно
Спустя 186 сек.Naaayh, если интересы пользователя тебя не волнуют, то пофигу.
Возможно пользователь считает, что он видит актуальную информацию, а не просчитанную сегодня в полночь. это уже зависит…ιιlllιlllι унц-унц
Пожалуйста, авторизуйтесь, чтобы написать комментарий!