Консультация № 169943
27.06.2009, 18:36
0.00 руб.
0 9 1
как выполнять задачу в определенное время?
ну например проверять каждый день или неделю активность пользователей и если они были неактивны то удалять их? как это автоматизировать?? то есть полностью без участия человека и не нагружая сервер?
где то слышал что это можно с помощью крона сделать? тогда где его качать в версии для сайтов и чтоб работал почти на любом хостинге?

Обсуждение

давно
Студент
15716
139
27.06.2009, 18:40
общий
На любом хостинге не получиться, надо чтоб крон был установлен на сервере.
Неизвестный
27.06.2009, 18:45
общий
то есть настраивать в панели управления хостингом??
других вариантов нет?
просто если к каждому сайту настраивать... хотелось просто залить на хостинг нужные файлы и забыть..
Неизвестный
27.06.2009, 19:43
общий
есть ещё вариант "костыль" - подынклюдить команду для крона в индекс - и переложить эту задачу на юзеров ))
Неизвестный
28.06.2009, 15:31
общий
то есть проверять десятки тысяч раз в день вместо одного раза в месяц?
давно
Студент
15716
139
28.06.2009, 16:29
общий
Скрипт может быть с условием
Т. е. проверять если сейчас понедельник (или первое число и т.д.) и тогда инклудить нужный скрипт.

Одна маленькая проверка, но работать будет везде.
Неизвестный
29.06.2009, 09:48
общий
Александр Романов [Alexo]:
Я именно это и имел в виду, спасибо за уточнение и респект за взаимопонимание ;-)

ну и ещё можно гденить сажать флаг "проверено" - или файликом, или записью в базе - чтобы в течение первого числа только первый посетитель выполнял проверку и сажал флаг "проверено", а, скажем "не первого" числа - первый посетитель этот флаг грохал (при его наличии)...
Неизвестный
30.06.2009, 09:52
общий
это ответ
Здравствуйте, sympler.
Именно Вашу задачу можно реализовать без cron'а: надо при загрузке страницы проверять есть ли "просроченные" пользователи и удалять их.
Реально cron нужен для строго периодических задач (backup например).
Версии для сайтов не существует - он либо установлен на хостинге, либо нет - самостоятельно Вы ничего не измените.
Неизвестный
30.06.2009, 13:16
общий
вот что плучилось скрипт должен выполняться каждую неделю

IF ($today=="понедельник" AND ($status=="сегодня-еще-не-выполнено" OR $raznica_dat>7)){выполняем скрипт и меняем статус на "выполнено" и дату на "30.06.2009" сегодняшнюю}

а тут меняем флаг выполнено на "сегодня-еще-не-выполнено"

IF ($today=="вторник" AND ($status=="выполнено" OR $raznica_dat<7)){ меняем статус на "сегодня-еще-не-выполнено" }

Неизвестный
30.06.2009, 17:53
общий
sympler:
да, концептуально так

а можно чуть иначе:

$vypolneno = 1245765093; // прошлый вторник

if ( ( time() - $vypolneno ) > 60*60*24*7 ) { выполнить(); $vypolneno = time(); }

// (time() - $vypolneno) - есть разница в секундах, если она больше 7 дней - выполнить и обновить дату выполненного, иначе ничего не делать
Форма ответа