Запустить файл PHP в запланированное время? - PullRequest
1 голос
/ 04 ноября 2011

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

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

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

Ответы [ 3 ]

4 голосов
/ 04 ноября 2011

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

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

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

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

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

1 голос
/ 04 ноября 2011

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

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

1 голос
/ 04 ноября 2011

cronjobs созданы для этого ... Вы можете проверить Cron Jobs в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...