Как выполнить Сценарий PHP за каждые 5-10 минут без крона, жемчуг и т.д.?

Ruby, хотя не настолько короткий:

class Overflow
    def initialize
        Overflow.new
    end
end

Overflow.new
17
задан peterh says reinstate Monica 28 June 2016 в 03:46
поделиться

5 ответов

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

15
ответ дан 30 November 2019 в 10:39
поделиться

Похоже, вашим единственным решением будет "Крон бедняка".

Что вы делаете, это создаете скрипт, который вы размещаете поверх каждой страницы, который запускается каждые 5 минут. Однако не гарантируется, что он будет запускаться каждые 5 минут. Поскольку для этого требуется, чтобы кто-то посетил страницы с "cron для бедняков", и если никто не зайдет на него более 5 минут, он не запустится, пока кто-нибудь не сделает этого.

Пример кода:

<?php
 // load the last run time from a file, database, etc
 if(time() >= $last_run + (60 * 5)) { // 60 * 5 is 5 minutes
     // do your task here
     // save the last run time to a file, database, etc
 }
17
ответ дан 30 November 2019 в 10:39
поделиться

См. this и this .


(Отредактировано для включения содержимого из ссылок.)

  • PHP Cron Daemon является управляется базой данных для планирования выполнения задачи (например, cron ). Он может анализировать файл crontab и извлекать определения расписания заданий в таблицу базы данных MySQL. Когда приходит время запускать запланированное задание, оно выполняет команду задания в определении crontab как код PHP как отдельный процесс. Вывод PHP-кода задания также сохраняется в таблице базы данных.
3
ответ дан 30 November 2019 в 10:39
поделиться

Вот еще одна «хитрость». Поскольку вы не можете запустить cron на машине, где находится сценарий, возможно, вы сможете запустить cron на другой машине.

Если вы можете ... настроить задание cron для запуска каждые 5 минут ... Задание может быть простой скрипт PHP, который вызывает другой ваш скрипт PHP. Вы можете использовать cURL для «вызова» вашего скрипта (если этот скрипт обслуживается веб-сервером)

11
ответ дан 30 November 2019 в 10:39
поделиться

Что-то вроде:

ini_set('max_execution_time', 'sometime'); 
while(1){
    //do something
    sleep(sometime);
}

Хотя я не рекомендую это делать. Пора перейти на сервер, который соответствует вашим потребностям.

1
ответ дан 30 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: