2009-02-03 4 views
6

У меня есть некоторые функции, которые используют завиток, чтобы извлекать информацию с нескольких сайтов и вставлять их в мою базу данных. Мне просто интересно, как лучше всего выполнять эту задачу каждые 24 часа?работает задача php каждые 24 часа

Теперь я бегу от окон, но, вероятно, переключись на linux, когда буду жить (если это имеет значение). Сейчас я работаю в рамках Symfomy.

Я слышал, что cronjobs может это сделать ... но, глядя на сайт, он работает удаленно, и я предпочел бы просто держать вещи в доме ... Могу ли я просто «запустить службу» на своем компьютере? что бы это значит;) (слышал раньше)

спасибо за любую помощь, Andrew

ответ

17

Это именно то, что Cron (Linux) или Scheduled Tasks (окна) для.

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

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

1

Вы можете установить запланированную задачу в cron (или запланированную задачу в окнах). Самый простой способ - создать сценарий оболочки (пакетный скрипт в Windows), который запускает скрипт php из командной строки (благодаря этому вам не нужно использовать ресурсы сервера WWW). Конечно, вы выполняете скрипт на целевой машине.

7

Добавление 0 0 * * * php /path/to/your/cronjob.php к вашему crontab должно выполнить это.

0

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

Вы можете использовать вызовы System.getRuntime().exec("cmd line stuff here");. Затем вы можете деформировать эту операцию в TimerTask. Наконец, вы запускаете объект Timer, добавляя TimerTasks и указав время и частоту и т. Д.

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

Возможно, излишнее, но, возможно, стоит посмотреть, есть ли у вас несколько таких операций.

sweeney