Запустить PHP-файл по расписанию?

У меня есть php-файл, который извлекает некоторые данные из внешних API, и я хочу запланировать его делать каждые несколько часов (или каждые несколько дней). Некоторые googleing привели меня к «запланированным задачам», но, похоже, мне нужно запустить собственный сервер, чтобы это сделать?

До сих пор все PHP и MySQL, которые я делал, были очень простым заполнением формы, поэтому я немного потерялся. Нужно ли мне превращать компьютер в сервер, чтобы сделать это, или я должен посмотреть на хосты, которые позволяют запускать скрипты? Я не совсем уверен, что я ищу.

Боковой вопрос: как я мог бы предотвратить, чтобы кто-то еще не запускал PHP-скрипт (из-за чего выполнялось множество вызовов API)?

Как вы теперь запускаете скрипт? Windows или Linux? Linux без проблем с cron: на сервере с поддержкой PHP просто отбросьте скрипт PHP где-нибудь, отредактируйте crontab и пройдите!

Ex. на каждые 2 часа

0 */2 * * * /usr/local/bin/php /path/to/script.php 

Редактировать Re: Mac

startd, по-видимому, является предпочтительным методом для запуска запланированных задач, но я понимаю, что OS X имеет возможности cron, а также производную UNIX.

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

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

cronjobs созданы для этого … Вы можете проверить работу Cron в cpanel. Я предполагаю, что ваш сайт запущен в среде Linu

http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

http://man.cx/cron

Вы можете найти гораздо больше информации об фоновом процессе

http://www.fijiwebdesign.com/blog/create-a-background-process-on-the-server-with-php.html