как обновить файл без крона?

Статус
В этой теме нельзя размещать новые ответы.

999udaw

Писатель
Регистрация
8 Сен 2008
Сообщения
36
Реакции
0
Привет всем я только учусь просьба помочь поделиться знаниями и заранее извиняюсь за нубские вопросы.
На сервере отсутствует крон.
сторонние кроны такие как web-cron.ru , Для просмотра ссылки Войди или Зарегистрируйся почему то не работают или прекратили свою работу. задача такая . для обновления базы сайта надо раз в сутки запускать XML файлик файлик.xml.
можно конечно самому заходить и запускать вручную. но хотелось бы максимально автоматизировать.
знаю что есть возможность запуска задачи при входе посетителя на сайт. но просидел весь день в поисковике так и не нашел . покажите знатоки как это реализуется на PHP.
может есть еще другие способы, скрипты?
 
Так в чём проблема найти другие крон сервисы. В интернете их полно вот например хороший и недаёт сбоев
 
просто все что я нашел это эти 2 да еще 1 французский
спасибо буду пробовать. но хотелось бы узнать как это можно было бы реализовать на php
 
Вот написал очень простой пример, он выполняет проверку при входе любого пользователя на сайт.

Его поместить в index.php
PHP:
// эти переменные вынести в конфиг
$interval = 24 * 60 * 60; // интервал между действиями в секундах
$lock_file = "/tmp/.cron"; //путь к файлу куда есть права на запись для вебсервера
if (file_exists($lock_file)) {
    // текущее время
    $time_sec=time();
    // время изменения файла
    $time_file=filemtime($lock_file);
    // сколько прошло времени, сек
    $time=$time_sec-$time_file;
    if ($time >= $interval){
        echo 'Do!'; // эту строку поменять на вызов функции с задачей для крона
        file_put_contents ($lock_file, $time_sec);
    }
} else {
    echo 'Do!'; // эту строку поменять на вызов функции с задачей для крона
    file_put_contents ($lock_file, $time_sec);
}

Последний else срабатывает 1 раз когда файл $lock_file еще не существует.
PS Если посетителей очень много, то возможно нужно выполнять эту проверку реже например для каждого 10го посетителя.
 
спасибо теперь я знаю больше
и если нетрудно можно примерчик по запуску относительно 10 посетителя
 
Еще вариант:
Вынести все задачи по крону в отдельный php файл
Потом с другого сервера, где есть нормальный крон, дергать его обычным wget, или из скрипта.
Вот еще один:
Вешаете на страницу невидимую картинку <img src="cron.php">
В скрипт cron.php положите тот код что я привел выше.
 
Лучшим вариантом, дабы не использовать сторонние ресурсы, будет такой:
1. Пишем демона, который будет висеть на определенном порту и выполнять необходимые действия с файлом.
2. В index.php пытаемся получить ответ от демона. Если ответа нет - запускаем демона.

Нагрузки на сервер не будет практически никакой, единственное что необходимо - уточнить у хостера какой порт можно использовать для таких целей, или же опытным путем установить это.

P.S. Если необходимо - пример демона могу дать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху