php альтернатива CRON

Lexon

Постоялец
Регистрация
20 Фев 2008
Сообщения
113
Реакции
5
Необходимо чтобы скрипт самостоятельно запускался(например каждые 5 минут), но без настройки крона, а средствами php. Это возможно?

---
Помню давно, в 2009ом году были плагины для WP, которые тянули контент с RSS-ок, так вот, данные плагины запускались автоматом, нигде крон не прописывался. Значит как- то это можно сделать.
 
Можно, но необходимо помнить, что PHP привязан к заходу на сайт.
То есть если пользователи на сайт заходят, то такой крон сработает, а если посетителей нет — то нет.
Для этого нужно делать:
1. Хранить очередь событий.
2. Хранить время последнего срабатывания (модификация какого-то файла или запрос в БД).
3. Регистрировать новые события.
4. Исполнять события, если время их настало.
5. Удалять старые события, в том числе и за ненадобностью.
 
Другой вариант: сделать скрипт, доступный из веба (можно по паролю), и запускать его путём запроса с другого сервера.
А на этом "другом" сервере как раз таки крон.
 
Другой вариант: сделать скрипт, доступный из веба (можно по паролю), и запускать его путём запроса с другого сервера.
А на этом "другом" сервере как раз таки крон.
Можно и так. А почему не устраивает вариант с кроном на том же сервере, где и сам сайт?
 
Два варианта)
1. Демон на пхп (фоновый скрипт)
2. Просто клиентский php скрипт который постоянно дергается посетителями в котором идет проверка последнего запуска с нужным интервалом в 5 мин
 
Можно, но необходимо помнить, что PHP привязан к заходу на сайт.
То есть если пользователи на сайт заходят, то такой крон сработает, а если посетителей нет — то нет.
Для этого нужно делать:
1. Хранить очередь событий.
2. Хранить время последнего срабатывания (модификация какого-то файла или запрос в БД).
3. Регистрировать новые события.
4. Исполнять события, если время их настало.
5. Удалять старые события, в том числе и за ненадобностью.

Спасибо за ответ, но к сожалению посетителей нет( а так, идея прикольная =)

Другой вариант: сделать скрипт, доступный из веба (можно по паролю), и запускать его путём запроса с другого сервера.
А на этом "другом" сервере как раз таки крон.
Можно и так. А почему не устраивает вариант с кроном на том же сервере, где и сам сайт?

Спасибо за ответ, крон что там что тут одно и тоже, но не в этом суть. А возможно ли такое, что задачи крону задаются не через панель хостинга а через ПХП? Допустим есть скрипт с формой, туда прописываешь всё что хочешь получить от крона и всё работает?


Два варианта)
1. Демон на пхп (фоновый скрипт)
2. Просто клиентский php скрипт который постоянно дергается посетителями в котором идет проверка последнего запуска с нужным интервалом в 5 мин

Спасибо за ответ. Можете подсказать, где лучше всего почитать про фоновые скрипты и Демон на ПХП? Тема интерсная
 
  • Заблокирован
  • #8
Необходимо чтобы скрипт самостоятельно запускался(например каждые 5 минут), но без настройки крона, а средствами php. Это возможно?

---
Помню давно, в 2009ом году были плагины для WP, которые тянули контент с RSS-ок, так вот, данные плагины запускались автоматом, нигде крон не прописывался. Значит как- то это можно сделать.
Пробуй
PHP:
<?php // функция запуска скрипта через определенный интервал времени (аналог cron)
   ignore_user_abort(); // запускаем скрипт в фоновом режиме
   set_time_limit(0); // запускаем скрипт всегда
   $interval=60*15; // интервал в секундах (сейчас установлено 15 минут)
   do
      {
            // собсно пишем сам скрипт..... тот, который хотим выполнять каждые 15 минут, например отправку письма с ругательствами плохому человеку или что-то по-сложнее (вобщем все зависит от вашей фантазии)...
sleep($interval); // инициируем интервал запуска скрипта
      }
   while(true);
?>

Только хостер может быстро прибить это усё((((
 
Пробуй
PHP:
<?php // функция запуска скрипта через определенный интервал времени (аналог cron)
   ignore_user_abort(); // запускаем скрипт в фоновом режиме
   set_time_limit(0); // запускаем скрипт всегда
   $interval=60*15; // интервал в секундах (сейчас установлено 15 минут)
   do
      {
            // собсно пишем сам скрипт..... тот, который хотим выполнять каждые 15 минут, например отправку письма с ругательствами плохому человеку или что-то по-сложнее (вобщем все зависит от вашей фантазии)...
sleep($interval); // инициируем интервал запуска скрипта
      }
   while(true);
?>

Только хостер может быстро прибить это усё((((


Беда с этим set_time_limit(0);
на обычном хостинге нельзя лимит убрать, на денвере работает, попробую ещё на VDS.
===============
Есть готовый класс чтоб долго не изучать) Для просмотра ссылки Войди или Зарегистрируйся
Огромное спасибо, буду разбираться )
 
Беда с этим set_time_limit(0);
на обычном хостинге нельзя лимит убрать, на денвере работает, попробую ещё на VDS.
В таком случае вы можете попробовать выполнить этот скрипт в фоновом режиме
PHP:
system("/usr/bin/php script.php &");
будет работать до перезагрузки, либо пока не вырубит админ
 
Назад
Сверху