2015-05-28 3 views
1

У меня есть особое требование, то есть я использую устройство Raspberry Pi 2 B для подачи некоторых данных в базу данных mysql в службе облака. Поэтому я установил стек LAMP на малине pi и настроил там свой скрипт. И задача этого - вставить некоторые значения в базу данных mysql удаленного сервера (облако) (я открыл для него порты). И скрипт должен запускаться каждые 30 секунд. Поэтому мне не нужно иметь поддержку браузера для этого, так как нам не нужно показывать какие-либо сведения о Raspberry Pi. После первого запуска скрипта он не должен останавливаться никогда, должен работать 24x7 во всех 365 дней.Каков наилучший способ запуска PHP-скрипта каждые 30 секунд?

Так что мой вопрос заключается в том, чтобы запустить свой скрипт в каждые 30 секунд, кажется, у меня есть несколько вариантов

  1. с использованием PHP нить (кажется, нужна поддержка браузера или первый раз скрипт работает через Баш, если произойдет какое-либо исключение в один момент скрипт перестанет запускать его снова, пока он не перезагрузится вручную, соединение с базой данных будет установлено один раз, поэтому время для его создания снова и снова будет предотвращено)
  2. Использование Cronjob (кажется, не требуется поддержка браузера даже для первого запуска, Угадайте, так как он запускает полный скрипт, снова уменьшает завершение сценария, соединение с базой данных будет устанавливаться снова и снова для каждого запуска, так что время будет ste)

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

+3

cron. или php-процесс, который выполняется постоянно. определенно не, когда-либо, скрипт попадает через браузер –

+1

Этот вопрос может быть лучше задан на другом форуме, например. serverfault.com, но есть другие ответы на stackoverflow, например. http://stackoverflow.com/questions/696839/how-do-i-write-a-bash-script-to-restart-a-process-if-it-dies/697064#697064. Или используйте что-то вроде daemontools - http://cr.yp.to/daemontools/faq.html – Clyde

ответ

3

Вы должны создать daemon (например, службу Windows) с PHP. Взгляните на блог Кевина, который иллюстрирует, как create daemons in PHP.

У вас может быть демона в течение 30 лет и начать снова и снова. Сначала выполните щедрое ведение журнала, а затем добавьте переключатели/параметры для управления уровнем ведения журнала.

Существует хорошая дискуссия о демонстрации PHP-скрипта на question 2036654.

Cron не отрежет его для вас, так как его лучшее разрешение составляет 1 минуту.

+0

Cron может использоваться с двумя записями, один - 30 секунд, но очень уродлив. Я бы предпочел решение в ссылке, которую Клайд дал в комментарии. –

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