Здравствуйте. Можно ли работать с cron из php? По моему у многих движков форумов, сайтов и т. д. есть необходимость выполнять некоторые действия в определенное время. Как работают такие скрипты, ведь пользователь сам вручную не делает никаких записаей в cron, не добавляет никаких заданий, все происходит автоматически. Я немного сомневаюсь, что скрипты работают напрямую с cron, но все таки они както добиваються подобного эффекта. В настройках php может присутствовать параметр max_execution_time с маленьким значением. Заранее благодарю.
сделайте скрипт с бесконечным циклом, который будет выполнять определенные действия с заданным интервалом. И вызывайте его через system() чтоб фоном запустить. А вообще чем вас крон не устроил?
Когда пишешь более менее серьезные проекты нужно делать так, чтобы автоматизировалось все. Не надо заставлять пользователя делать лишнюю работу, в том числе и добавлять задания в cron.
Не вижу связи max_execution_time с вашим вопросом. И так же не вижу никакой связи между серьезностью проекта и автоматизацией. Поясните?
При небольшом значении max_execution_time выполнение "вечных циклов" фактически не возможно. Еще ни разу не видел, чтобы при установке, например, форума, было написано, что пользователь должен добавить в крон расписание на выполнение некоторых скриптов.
1. чем мешает в своих "демонах" вешать set_time_limit(0) ??? Поконкретнее задачу можно изложить? Форум - это ничем не серьезный проект...
set_time_limit(0) - да, это вариант, но он может быть недоступен. Если движок форумный движок vBulletin, который разрабатываеться и поддерживаеться не один год, и у которого есть пользователи по всему миру, не является серьезным проектом, тогда уже не понимаю, что для вас значит "серьезный проект".
А что в "вобле" делается автоматически, как будто из под крона??? На крон у вас тоже может не быть прав...
Я видел скрипт cron.php в vBulletin, поэтому решил, что происходит какая то работа с крон или ей подобная. В этом скрипте есть строчка @set_time_limit(0), но нету никакого цикла. Кроме того, чтобы полностью осознать смысл кода, нужно разбирать внутрение классы vBulletin, которые там используються. Также есть еще кое что. При регистрации нового пользователя ему отправляеться письмо с ссылкой активации аккаунта. Ссылка обычно живет 24 часа. То есть сразу после регистрации в БД записываються какие то временные данные (код активации), и после активации аккаунта или спустя 24 часа они должны удалиться? Или они вообще никогда не удаляються?
Чтоб понять как работает cron.php у воблы, не обязательно перебирать весь код. Он берет из базы задания и если пора, инклюдит обработчики событий, которые наступили. Возможно в вобле они удаляются, но по большому счету смысла в этом нет. Можно проверять что с момента создания кода подтвержедния и самим подтверждением прошло более 24 часов. Тогда и грохнуть запись, рассказав пользователю, что он проспал.
Да-да, этот вариант я не исключал. Это просто и эффективно, так как достаточно всего одной проверки один раз. Но с другой стороны, - если много пользователей будут регистрироваться и не подтверждать емейл, в БД может оказаться много ненужной инфы.
Для этого у форума есть админ и модеры, которые раз в месяц тычут кнопку в админке "удалить срач", и срач волшебным образом пропадает))))