Как лучше всего запускать PHP-скрипт каждые 30 секунд?

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

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

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

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

1

Решение

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

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

Есть хорошая дискуссия о демонизации PHP скрипта на вопрос 2036654 также.

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

3

Другие решения

Я рекомендую использовать Cronjob. Вы можете написать свой PHP-скрипт, а затем настроить Cronjob для запуска этого скрипта каждые 30 минут.

https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job

0

По вопросам рекламы [email protected]