Автозапускаемый скрипт

Rigor

Профессор
Регистрация
1 Июн 2008
Сообщения
203
Реакции
35
Как сделать автозапуск скрипта в определенное время. Причем просто засунуть в крон не получится, так как вкл/выкл самого автозапуска и установку времени нужно делать из админки сайты, а не на сервере. Заранее спасибо.
 
  • Заблокирован
  • #2
А при чём тут админка сайта, если это серверная функция? Вижу 2 возможности(я ламер - под фото написано) - если сайт часто посещаемый то при открытии страницы проверять попадает ли текущее время под необходимое и в зависимости от этого запускать/останавливать скрипт. и второе. установить максимальное время выполнение на бесконечно и в бесконечном цикле while вставить проверку на необходимое действие. Не забыв при этом написать в while sleep чтобы сервак не положить:D
 
Если нужна точность, то только через крон...
Правда не запускать напрямую его через php, а стартануть его через wget или lynx... Зависит от того, что на серве... а результат в /dev/null
Что-то вроде: /usr/bin/lynx -dump Для просмотра ссылки Войди или Зарегистрируйся > /dev/null
Но с админки сайта не поуправляешь.

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

Больше вариантов нет...

Если не считать за вариант отработку скрипта с стороннего сервера или сайта :)
 
А при чём тут админка сайта, если это серверная функция?

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

Единсвтенное, что я придумал, это все скрипты изначально запускать по крону, раз в час, по умолчанию. А уже в скриптах сделать каокй-то флаг, который скажет продожать выполнение скрипта или прекратить.Тогда можно будет этот флаг редаткировать в админке. Но вопрос - а как это скажется на производительности, если раз в час простукивать по крону около 500 скриптов?
 
а как это скажется на производительности, если раз в час простукивать по крону около 500 скриптов?
зависит от сервера
 
Как сделать автозапуск скрипта в определенное время. Причем просто засунуть в крон не получится, так как вкл/выкл самого автозапуска и установку времени нужно делать из админки сайты, а не на сервере. Заранее спасибо.
админка находится на сервере. В браузере ты видишь html-, css-, js-результат работы этой админки. Что мешает сделать в админке кнопку (html), по нажатии на которую (в результате выполнения скрипта php) выполняется команда линукс?
p.s. Словосочетание " так как " в этом месте вообще вырубает мой мозг, и я впадаю в кратковременную каталепсию. Хотя, судя по вышележащему конструктивному диалогу, ощущение, что это я просто не выспался)
 
Если есть возможность редактировать крон. Можно задать минималный интервал через который будет выполняться php скрипт а уже в скрипте отслеживать и время выполнения и вкл/выкл автозапуска нужной функции.
 
Так в этом и проблема, что по ТЗ настройка автозапуска должна быть в админке.
Настройки в админке. Соответственно настройки хранятся в кеше и/или базе.
Какие трудности - вынести переменные в любое место и дергать их кроном каждые NNN минут, часов...
 
админка находится на сервере. В браузере ты видишь html-, css-, js-результат работы этой админки. Что мешает сделать в админке кнопку (html), по нажатии на которую (в результате выполнения скрипта php) выполняется команда линукс?
p.s. Словосочетание " так как " в этом месте вообще вырубает мой мозг, и я впадаю в кратковременную каталепсию. Хотя, судя по вышележащему конструктивному диалогу, ощущение, что это я просто не выспался)
А каким образом можно редактировать крон с помощью команд линукс в php скрипте? shell_execute? если да, то подскажите синтаксис доабвление новой задачи. И удаление.
Настройки в админке. Соответственно настройки хранятся в кеше и/или базе.
Какие трудности - вынести переменные в любое место и дергать их кроном каждые NNN минут, часов...
получается в день файл будет запускаться 60*24 раз. Как-то не очень хорошо. Но если предположить такой вариант, как из такого файла запустить скрипт, для которого настройки в БД говорят запустить в данную минуту?
 
Создайте файл, который будет запускаться системным кроном в заданный вами период (пусть это будет mycron.php и пинается он например каждые 10 минут). Ваш mycron лезет в базу (или еще куда, где вам удобнее хранить настройки) и смотрит какие задачи в какой период времени он должен запустить. Для простоты можно например все задачи в том же mycron прописать, и тупо select...case'ом смотреть согласно настроек что выполнять а что нет.
 
Назад
Сверху