2010-11-25 2 views
3

я хочу, чтобы запустить программу PHP постоянно на сервере, который будет загружать некоторые вещи и хранить их ..Как запустить php-программу непрерывно на сервере?

Я думал о создании сценария и запуске, что в хронах ..

Но мне интересно есть любой другой простой метод или легкий вес, который занимает меньше памяти на сервере во время непрерывной работы?

я думал о другой простой вещи,

создания PHP скрипта с бесконечным временем max_execution и выполнением кода внутри некоторое время (правда) петель (бессрочной петлей) с некоторым сном, а затем запустить программу с помощью PHP ..

Какой будет лучший доступный способ для этого?

ответ

2

Я создал библиотеку под названием LooPHP которая помогает абстрактное из всех while(1) сумасшествия и предоставляет возможность добавлять источники событий (более или менее это основной runloop вы бы точно в БОЙКОМ, какао, node.js). Есть несколько из examples, которые могут сообщать вам, нравится ли вам стиль написания (основанный на событиях против цикла).

Я предлагаю прочитать некоторые другие вопросы с помощью PHP and daemon tags. Вот ответы fewofmy.

Но, честно говоря, CRON довольно легкий и, если он не должен быть в режиме реального времени (или что бы это ни значило для вас), писать PHP в демона - это больше, чем работа.

1

Запуск cron - вот для чего они предназначены.

Ваша идея петли while(TRUE) и sleep() ing является flaky и, вероятно, не так ясен для других разработчиков, а затем запускает работу cron.

+0

Cron в порядке, но я хочу знать, есть ли какие-либо другие ориентированные на сервер методы, которые будут использовать меньше памяти ...и если он работает непрерывно, нет риска повторить задачу снова, но есть шанс повторить при запуске cron – Vijay 2010-11-25 05:31:40

+0

@kvijayhari. Вы можете исправить cron double вверх оболочкой. Он является образцом одного для rsync, но он может быть исправлен для работы с PHP-скриптом. https://gist.github.com/714960. Они будут выполняться в cron вместо PHP напрямую. – 2010-11-25 05:38:30

0

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

0
  1. Почему не SSH в машину и запустить php в консоли?
  2. Если нет, сделайте popen(), чтобы вызвать php-cli в вашем скрипте php.
  3. Используйте corntab для программ, которые необходимо запускать периодически - никогда не заканчивается скрипт никогда не бывает хорошо.
0

Вы можете написать daemonize скрипт PHP так же, как вы можете создать демон Perl или Python. Запуск и остановка скрипта зависит от операционной системы. Существует класс PEAR System_Daemon, который помогает при написании демона PHP.

0

ЕСЛИ вы просто загружаете материал из Интернета, не было бы разумнее пойти с чем-то вроде wget? С другой стороны, если вы сканируете/просматриваете веб-страницы, я думаю, что делать cronjob было бы лучше

Смежные вопросы