Я довольно новичок в PHP. Это мой первый раз на самом деле, поэтому я заранее извиняюсь, если вопрос звучит глупо.
У меня есть php-скрипт, который извлекает данные из внешнего API и регулярно обновляет мою базу данных. Я знаю, что лучший способ сделать это – использовать работу cron. Тем не менее, я использую бесконечный цикл, который спит в течение определенного времени между каждым обновлением.
Теперь мне нужно разрешить пользователю (администратору) запускать / останавливать сценарий, а также позволять им изменять временной интервал между каждым обновлением. Администратор делает это через пользовательский интерфейс. Каков наилучший способ сделать это? Как выполнить сценарий в фоновом режиме, когда пользователь нажимает кнопку запуска и как остановить сценарий?
Благодарю.
Я думаю, что идеальным решением было бы следующее:
Запускайте фоновое задание как cronjob каждую минуту (вместо цикла, который может вызвать утечку памяти). PHP не был предназначен для демон.
Установите флаг БД в cronjob для включения / выключения, каждый раз, когда он запускается, он проверяет, включено ли оно или нет, если он существует, если он продолжается.
В пользовательском интерфейсе вы включаете или выключаете этот флаг в зависимости от того, что нужно администратору.
Я думаю, что это лучший способ пойти (и самый простой).
Вы можете взглянуть на Threading в PHP -> http://www.php.net/manual/en/class.thread.php
Другой вариант – либо установить SESSION (что немного сложно, так как вы не поймаете его в том же вызове), либо вы создаете файл, который сообщает скрипту о прекращении / выходе / сбое / когда-либо, если этот файл существует ,