Лучший способ периодически выполнять PHP-скрипт?

Вероятно, я бы выяснил, как это сделать, если бы у меня был полный доступ к серверу, однако проблема в том, что это всего лишь услуга хостинга, которая оставляет мне ничего, кроме доступа к FTP .

Я хотел бы периодически запускать скрипт PHP, чтобы проверять наличие устаревшего / сломанного контента, собирать новый контент, удалять файлы, которые не используются и т. Д., Однако для выполнения сценария может потребоваться до 60 секунд (из-за агрегирования содержимого), и мне кажется, что задницу просто выполнить ее при обработке запроса первого пользователя, который посещает веб-сайт через час после его обновления: P

Выход моего домашнего ПК на 24/7 для планирования запросов – это не вариант.

Вы можете использовать онлайн-службу cron, чтобы по существу притворяться, будто у вас есть доступ к cron.

Создайте php-файл с содержимым, которое вы хотите выполнить

Бесплатный веб-сайт Cron

Настройте бесплатный онлайн-cron для выполнения этого файла каждые x минут.

Не уверен, что это правильный подход, но я просто запускал сценарий, когда первый пользователь посещает сайт, а затем отправляет <meta http-equiv="refresh"... пользователю, чтобы его браузер обновил стр. Оригинальный PHP-скрипт все равно будет работать на сервере, но пользователь больше этого не увидит.

В основном, что-то вроде:

 if( check if the user is the first visitor today ) { set_time_limit(0); echo "<meta http-equiv='refresh' content='1;url=..." />"; // put your site baseurl in here ... run your scripts here } 

Просто идея. Не может работать. Просто попробуйте.

Вы можете обойтись без cron, используя следующее решение (только для PHP): http://a32.me/2012/01/do-php-cron-without-cron-available/

Если ваш хостинг-провайдер не дает вам ничего, кроме FTP-доступа, и вы не хотите планировать периодический запрос с другого компьютера, то вы ничего не можете сделать. Вам нужно будет получить лучшую учетную запись хостинга, предпочтительно такую, которая позволит вам использовать cron.

Почему бы вам не использовать

 crontab 

Посмотрите здесь:

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