Выполнение действий по времени

Тема в разделе "PHP", создана пользователем shmitacc, 26 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. shmitacc

    shmitacc Постоялец

    Регистр.:
    31 авг 2009
    Сообщения:
    76
    Симпатии:
    6
    Как реализовать выполнение скриптов по времени...
    например выполнить два скрипта или функции, только с разницей по времени, например в 10 минут... т.е. выполнился один скрипт(функция) и через 10 минут началась выполняться другая функция..
     
  2. west bomzh

    west bomzh Постоялец

    Регистр.:
    25 апр 2008
    Сообщения:
    69
    Симпатии:
    13
    да поможет вам cron
     
  3. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    736
    Симпатии:
    424
    я вижу только два способа:
    1) cron (как было указано выше)
    2) при помощи семафоров
     
  4. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    можно в конце одного файла прописывать таймаут на 10 минут и потом дальше грузть то, что нужно - так до бесконечности можно делать и будет работать
    (ессно если лимиты по времени убраны)
     
  5. shmitacc

    shmitacc Постоялец

    Регистр.:
    31 авг 2009
    Сообщения:
    76
    Симпатии:
    6
    А подробнее можно? Как именно поставить таймаут? И как вообще это работает?
    П.С. Если можно - ссылочку на материал :)
     
  6. black.cat

    black.cat

    Регистр.:
    13 ноя 2008
    Сообщения:
    203
    Симпатии:
    32
  7. Zogr

    Zogr Постоялец

    Регистр.:
    6 июн 2008
    Сообщения:
    96
    Симпатии:
    7
    Проблемы со sleep и им подобным череваты повисанием интерпретатора в исполнении бесконечного цикла при ошибке в скрипте. Хрен разберёшься, что к чему, если что.

    Если крона нет, то можно при любом запросе к сайту проверять наличие отложенных заданий и выполнять их при условии прохождения нужного времени. При достаточной посещаемости этого хватит (так устроен "крон" в вордпресс и пхпбб, например).
    Если посещаемость мала или её нет, то можно написать внешнего дятла, который будет дёргать нужный урл через заданное время (хоть с другого хостинга по крону, хоть с десктопа). Этот способ хорошо подходит, если надо регулярно выполнять задачи на хостингах, где нет крона и малая посещаемость - один дятел покрывает все хостинги.
     
  8. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    у меня работал один скрипт 2 месяца так - лень было по человечески сделать - полет нормальный

    для отслеживания работоспособности использовался метод записи в файл текущего состояния и времени записи - далее вместе с запуском запускался и скрипт контроля по времени - как бы примитивная 2-ая защита :)
     
  9. Zogr

    Zogr Постоялец

    Регистр.:
    6 июн 2008
    Сообщения:
    96
    Симпатии:
    7
    Ну, в общем, для несложных задач пойдёт, а вот для сложных, с объектами, да на старом пхп... учитывая баги ПХПшного сборщика мусора держать долго работающим скрипт я бы всё таки не стал. Но на этот случай возможно серединное решение, например, перезапускать самого себя через обращение к самому себе через курл каждые сутки/неделю.
     
  10. redrush

    redrush Создатель

    Регистр.:
    12 авг 2009
    Сообщения:
    11
    Симпатии:
    1
    когда то тоже сталкивался с подобной задачей. Решение нашел в программе WinCron
     
Статус темы:
Закрыта.