[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: cron на пхп
Xpund
Надо сделать так что бы скрипт автоматически переходил по ссылке например http://site.ru Но есть одно но
Нету крона на хостинге. Надо что бы каждые 3 минуты срабатывался скрипт, причём что бы на страницу не должен был заходить человек.



Спустя 32 минуты, 41 секунда (19.09.2010 - 08:34) twin написал(а):
Демон делать... Не очень хорошая практика на PHP, но куда деваться, коли так.

Спустя 1 час, 17 минут, 4 секунды (19.09.2010 - 09:51) Xpund написал(а):
Цитата (twin @ 19.09.2010 - 05:34)
Демон делать...

А как его сделать?

Спустя 26 минут, 16 секунд (19.09.2010 - 10:17) twin написал(а):
ну самый простой способ - бесконечный цикл.

set_time_limit(0);
ignore_user_abort(true);

while(true)
{
// тут делаешь что нужно
sleep(180);
}


Только очень осторожно с этим. Запустишь скрипт - не остановишь уже, пока сервер не перезапустишь. И таких процессов можно очень много назапускать.

Спустя 3 минуты, 18 секунд (19.09.2010 - 10:20) Xpund написал(а):
А если я фаил удалю? Скрипт выключиться?

Спустя 1 минута, 52 секунды (19.09.2010 - 10:22) twin написал(а):
Нет. Не выключится. Он в оперативке будет молотить. Делай точку выхода при отладке, потом запустишь один раз.
И еще - он перестанет работать, как только хостер ребутнет сервер. Некоторые делают это часто.

Спустя 4 минуты, 38 секунд (19.09.2010 - 10:27) Xpund написал(а):
twin
Спасибо большое
Вот посмотри будет работать?
<?
set_time_limit(0);
ignore_user_abort(true);

while(true)
{
$file=file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');
$dom = new domDocument;
$dom->loadXML($file);
if (!$dom) exit('Ошибка парсинга документа!');
$s = simplexml_import_dom($dom);
if(!empty($s))
{
foreach ($s as $k=>$v)
{
selectDb('realmd');
$q=mysql_query("SELECT * FROM `account` WHERE `reward_points`<".$v['unixtime']." AND id='".$v."' ") or die (mysql_error());
if(mysql_num_rows($q)>0) $mas[]=$v;
}

$time=time();
if(!empty($mas))
{
foreach ($mas as $g=>$val)
{
selectDb("realmd");
mysql_query("UPDATE account SET reward_points=".$time.",bonuses = bonuses + 10 WHERE id='".$val."' ") or die (mysql_error());
}
}
}


sleep(200);
}
?>

Спустя 9 минут, 48 секунд (19.09.2010 - 10:36) twin написал(а):
Ну во первых сразу остановится, если что то произойдет с соединением. Тоесть тебе нужно как минимум погасить ошибку

$file = @file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');

ну и дальше. А лучше их вообще все поотключить.
error_reporting(0);

Это ты кому пишешь? Серверу? smile.gif
if (!$dom) exit('Ошибка парсинга документа!');

и что за дурацкая привычка ставить восклицательные знаки... Чему тут ликовать? smile.gif

Дальше не смотрел - там твоя логика.

Спустя 4 минуты, 12 секунд (19.09.2010 - 10:41) Xpund написал(а):
Просто раньше этот скрипт вызывался путём переходу по ссылке. А сейчас мне надо что бы работал автоматически.
twin
Пожалуйста, выложи полный ответ, то есть переделанный мой код.

Спустя 8 минут, 56 секунд (19.09.2010 - 10:50) twin написал(а):
Иш ты... Мне как будто заняться нечем. smile.gif
Переделывай сам, я посмотрю.

Спустя 6 минут, 49 секунд (19.09.2010 - 10:56) Xpund написал(а):
<?
set_time_limit(0);
ignore_user_abort(true);

while(true)
{
$file = @file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');
error_reporting(0);
$dom = new domDocument;
$dom->loadXML($file);
$s = simplexml_import_dom($dom);
if(!empty($s))
{
foreach ($s as $k=>$v)
{
selectDb('realmd');
$q=mysql_query("SELECT * FROM `account` WHERE `reward_points`<".$v['unixtime']." AND id='".$v."' ") or die (mysql_error());
if(mysql_num_rows($q)>0) $mas[]=$v;
}

$time=time();
if(!empty($mas))
{
foreach ($mas as $g=>$val)
{
selectDb("realmd");
mysql_query("UPDATE account SET reward_points=".$time.",bonuses = bonuses + 10 WHERE id='".$val."' ") or die (mysql_error());
}
}
}


sleep(200);
}
?>

Спустя 10 минут, 53 секунды (19.09.2010 - 11:07) twin написал(а):
set_time_limit(0);
ignore_user_abort(true);
error_reporting(0);

while(true)
{
$file = file_get_contents('http://post.smspartner.ru/messages_xml.php?id=190301&count=30');


Спустя 45 секунд (19.09.2010 - 11:08) Xpund написал(а):
Спасибо.

Спустя 3 часа, 42 минуты, 55 секунд (19.09.2010 - 14:51) FatCat написал(а):
Цитата (twin @ 19.09.2010 - 11:22)
он перестанет работать, как только хостер ребутнет сервер. Некоторые делают это часто.

А многие хостеры делают kill процессов, длящихся более 120 (или сколько там задано) секунд.

Спустя 2 часа, 6 минут, 33 секунды (19.09.2010 - 16:57) ZSH написал(а):
я бы еще сделал точку выхода, если надо остановить то сервак перегружать что ли


_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.