Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Запуск скрипта с определенным периодом (https://forum.antichat.xyz/showthread.php?t=168039)

serg-php 03.01.2010 23:57

Запуск скрипта с определенным периодом
 
Имею скрипт вывода информации через инклуд с определенным интервалом:

PHP код:

<?
$filetime
=lstat('content.txt'); // Получаем массив информации о файле 
$cur=time()-$filetime[9]; // Получаем время прошедшее с последней модификации файла 
if ($cur>86400// Если прошло больше 2500 секунд, то делаем запрос к БД 

$f=fopen('content.txt','w');  

// Все echo заменяем на $out.=  
// Чтобы собрать в эту переменную все данные которые надо выводить 

$host "";    // MySQL server
$user_db "";        // MySQL пользователь
$pass_db "";            // MySQL пароль
$dbase "";        // MySQL база данных
$dtable "";        // Таблица в базе данных

error_reporting(E_ALL);

mysql_connect ($host$user_db$pass_db); 
mysql_select_db($dbase); 

$sql "SELECT link_id, images, catid, rand() AS rnd FROM $dtable WHERE catid=499 GROUP BY link_id ORDER BY rnd LIMIT 6"
$result mysql_query($sql); 
$rows mysql_num_rows($result); 
$out=""
if ((!
$rows) || ($rows 1)) {$out.="Результатов НЕТ!!!";} 
else { 
      
$out.="Заголовок моей инфы"
      while(list(
$id_link$images) = mysql_fetch_row($result)) { 
  
$out.="<a href='$id_link.html'><img src='$images'></a>"

       } 
$out.="Конец моей инфы"
fwrite($f,$out);fclose($f); // Записываем в файл 


echo 
file_get_contents('content.txt'); // Всегда выводим содержимое файла 



?>

Как сделать, чтобы скрипт запускался сам с определенным интервалом без инклуда?

P.S. Крон хостинга не предлагать

Dr1ver 04.01.2010 00:06

Может быть вечный цикл while(1) где нибудь sleep(секунд) и посмотри ignore_user_abort

LStr1ke 04.01.2010 00:10

PHP код:

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

(c) Google

serg-php 04.01.2010 00:14

Благодарю! Пробую!

Цитата:

запускаем скрипт всегда
Большая ли нагрузка на сервер создается при этом?

А как быть с safe mode?

Zedi 04.01.2010 00:31

нагрузка будет большая, некоторые хосты это не любят)0 safe_mode = off

serg-php 04.01.2010 00:37

Такой вариант не подходит!

xxx-xxx 04.01.2010 05:22

http://cronjob.ru

ReduKToR 04.01.2010 09:50

В панели хостинга найти вкладку CRON и установи нужное значение и путь до скрипта.
Или как написано постом выше - ты может воспользоваться, бесплатным сервисом cronjob.ru

suser 04.01.2010 11:31

Инклудь скрипт другим скриптом с др хостинга и обрывый соединение, а другой через паузу пусть запускает первый,

или

Сделай такуюж как сейчас сравнивалку во времени только место соединения с бд запускай нужный скрипт, залей на фрии хостинг и пусти ифрейм траффика.
Бедный фрии хостинг, всю тяжёлую работу берёт на себя

Всё зависит от паузы

serg-php 05.01.2010 01:38

Цитата:

В панели хостинга найти вкладку CRON и установи нужное значение и путь до скрипта.
Видимо, это оптимальный вариант!


Время: 17:59