Синхронизированный скрипт PHP


Я пытаюсь понять, как создавать временные сценарии на PHP. В основном, скажем, в моем приложении я хочу выполнять задачу через определенные промежутки времени (например, ежедневно отправлять пользователям уведомления по электронной почте, выполнять очистку базы данных в определенное время и т.д.) Как этот тип сценариев (планирования) выполняется в PHP? Если это невозможно в PHP, то как это сделать и на каком языке? Я использую учетные записи хостинга как для Linux, так и для Windows, поэтому я хотел бы, чтобы этот метод, если возможно, был универсальным.

Любой помощь приветствуется.

Author: miki725, 2011-02-16

5 answers

Я просто планирую задания cron, которые запускают PHP-скрипты.

*/5 * * * * php /var/www/cron/cleanup-db.php

Альтернативным (совместимым с Windows) подходом было бы запустить постоянный PHP-скрипт, который спит в течение некоторого интервала, и при пробуждении он проверяет, нужно ли запускать какие-либо задания. Например, проверьте, не получили ли какие-либо ожидающие запросы ответа или напоминания по электронной почте в течение N часов.

 5
Author: Annika Backstrom, 2011-02-16 16:27:22

На машинах Unix вы используете cron, который предназначен для повторных рабочих мест. В Windows эквивалентом является at

 4
Author: Marc B, 2011-02-16 16:28:01

Cron - очевидный выбор, но вы, возможно, не сможете его использовать, потому что размещаете свой сайт в "общей" среде. Попробуйте онлайн-сервисы, которые автоматически генерируют http-запросы к вашим URL-адресам на основе установленного вами расписания. Google "запланировать http-запрос онлайн", существует множество таких сервисов, некоторые из них бесплатны или имеют бесплатные опции.

 2
Author: , 2011-02-16 16:39:11

Чтобы завершить ответ Адама, в Windows у вас есть возможность выполнять запланированные задачи, которые можно запрограммировать с заданными интервалами. Именно так мы и поступаем.

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

Есть еще одно требование: задача может быть выполнена на php, если у вас есть php-cli, так что проверьте это тоже.

 2
Author: Carlos Mora, 2011-02-16 16:42:23

Вы ищете работу в cron

Http://en.wikipedia.org/wiki/Cron

 1
Author: bensiu, 2011-02-16 16:26:16