Синхронизированный скрипт PHP - PullRequest
2 голосов
/ 16 февраля 2011

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

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

Ответы [ 5 ]

5 голосов
/ 16 февраля 2011

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

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

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

4 голосов
/ 16 февраля 2011

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

2 голосов
/ 16 февраля 2011

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

2 голосов
/ 16 февраля 2011

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

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

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

1 голос
/ 16 февраля 2011

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

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

...