Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Запуск скрипта с периодом


Recommended Posts

Всем привет! Прошу Вашей помощи. Мне необходимо обращаться к удаленному серверу несколько раз в течение какого-то времени, до тех пор пока одна из возвращаемых переменных не будет равна значению по условию. Всё это должно делаться в фоновом режиме, поэтому никакие ajax тут не прокатят.

Долго искал ответ на свой вопрос. Многие пишут используй cron и cli. Но можно ли всё это автоматизировать до такого момента, чтобы человеку не нужно было лезть в cPanel и ручками прописывать в самом планировщике путь к крон файлу?

У кого есть идеи, как можно это решить, поделитесь пожалуйста.

Link to post
Share on other sites

в теории, можно реализовать что-то вроде своего планировщика заданий (или поискать готовый. Мож он уже есть:)).

Смысл в том, что на крон вешается запуск акшона каждый час.

Акшон проверяет, если задачи на текущее время и выполняет, если есть.

Т е единожды добавив задание в крон, можно управлять заданиями из админки.

Некоторые CMS используют этот подход.

Link to post
Share on other sites
19 минут назад, TeslaFeo сказал:

Смысл в том, что на крон вешается запуск акшона каждый час.

А теперь читаем

 

 

45 минут назад, chemark23 сказал:

Но можно ли всё это автоматизировать до такого момента, чтобы человеку не нужно было лезть в cPanel и ручками прописывать в самом планировщике путь к крон файлу?



Можно.. сделать псевдо крон

1. проверяем наличие и работу "крона"
2. Крон вызывается ЛЮБЫМ процессом..

Т.е.

Сторонний процесс
  Проверка и Взведение флага
  Проверка последней даты
  Выполнение процсса
  Спустить флаг

Сторонний процесс
  Проверка и Взведение флага  - Если взведен - покинуть
  Проверка последней даты - Если не дата - покинуть
  Выполнение процесса
  Спустить флаг
 

 

Кто может быть инициатором процесса

Любой процесс
Специально обученный


Например - посещение главной, или страницы контактов (Если процесс длительный - то ответ может затянуться)
Или аякс запрос с той же главной - запустили а ждать ответа необязательно

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

 

Link to post
Share on other sites
39 минут назад, chukcha сказал:

А теперь читаем

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

у кодера все карты на руках, а обращение, на сколько я понял, от кодера :) 

Link to post
Share on other sites
23 минуты назад, TeslaFeo сказал:

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

причем здесь это?

Я бы на месте хостера 100% запретил бы процессу httpd crontab -e

Link to post
Share on other sites
2 минуты назад, chukcha сказал:

Я бы на месте хостера 100% запретил бы процессу httpd crontab -e

этого не нужно делать. Достаточно запустить нужный контроллер.

и не обязательно разрешать запуск абсолютно любого акшона, а предоставить выбор из тех, которые для этого предназначены (и написаны специально для этого).

Link to post
Share on other sites

Всем спасибо, задача не такая уж простая оказалась

Link to post
Share on other sites

Если можно использовать сторонний сервис, попробуйте триггеры Google App Script - это аналог cron.
Триггеры можно создавать и через UI и скриптами ( Java Script)
В принципе можно сделать интерфейс, например в виде  таблиц или Google Form.
Лимиты на бесплатном аккаунте вполне приличные.

Edited by Pirks
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.