[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выполнение кода каждые 2 часа
13rust
Привет. Передо мной встала задача, решение которой я не смог найти. Не могли бы вы подсказать:
"Каждые 2 часа автоматический файл\группа файлов из каждого аккаунта,должна отправлять на сканирование."
Отправление файлов я реализовал, а вот насчет каждые 2 часа возникли проблемы (



Спустя 2 минуты, 27 секунд (15.11.2009 - 00:01) FatCat написал(а):
Если ресурс малопосещаемый или если требуется очень большая точность соблюдения интервало времени - по крону. В противном случае проще и логичней сделать на тасках.

Спустя 2 часа, 7 минут, 53 секунды (15.11.2009 - 02:09) MainVoid написал(а):
Простите, влезу.

FatCat, поясни, если не сложно, что ты имеешь ввиду под таском?

Спустя 4 минуты, 31 секунда (15.11.2009 - 02:14) haZe написал(а):
я думаю то, что эти изменения выполдняются только при активности пользователей.
Например как в разделе "кто онлайн" делают, он обновляется, только когда пипл шастает.

Спустя 58 минут, 16 секунд (15.11.2009 - 03:12) FatCat написал(а):
Цитата (MainVoid @ 15.11.2009 - 03:09)
что ты имеешь ввиду под таском?

Задания, совмещаемые с отображением страницы по запросу.
Например, чтобы не гонять по каждому запросу главной страницы кучу тяжеловесных sql-запросов, сделано 15-минутное кеширование на тасках:
// Начали проверку файлов для кеширования
$time_next = "";
$cache_dir="cache";
$open_dir=opendir("$cache_dir");
while($tmp_name=readdir($open_dir))
{
if(stristr($tmp_name,".cache.board.tmp"))$time_next .= $tmp_name."<br>";
}
$time_next .= "end";
$time_next = str_replace("<br>end","",$time_next);
if($time_next == "end")
{
$time_next = "1000000000.cache.board.tmp";
}
elseif(stristr($time_next,"<br>"))
{
$temp_deleter = explode("<br>",$time_next);
unlink($cache_dir."/".$temp_deleter[0]);
$time_next = $temp_deleter[1];
}
$time_delim = time() - str_replace(".cache.board.tmp","",$time_next);
if($time_delim > 900 or $time_delim < 0)$cached_in_file = "recach";
else $cached_in_file = "cached";
// Закончили проверку файлов
// Начали кешировать

if($cached_in_file == "cached")
{
@ob_start();
include( "cache/".$time_next );
$board_cache_html = @ob_get_contents();
@ob_end_clean();
}
else
{
// гоняем кучу запросов, собираем ХТМЛ-код в $board_cache_html
$fh = fopen("cache/".time().".cache.board.tmp", "w");
fwrite($fh, $board_cache_html);
fclose($fh);
}

Если к примеру час не запрашивали главную, кеш и не обновлялся - нечего зря гонять машину, если зрителей нет.
Но все посетители получат информацию не старее 15 минут.



Спустя 26 секунд FatCat написал(а):
Цитата (haZe @ 15.11.2009 - 03:14)
он обновляется, только когда пипл шастает

Верно! Именно так!

Спустя 12 часов, 44 минуты, 27 секунд (15.11.2009 - 15:56) MainVoid написал(а):
FatCat, спасибо, в моей голове такой подход был подписан как "агенты". Расширю словарный запас.
Быстрый ответ:

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