Доброго времени суток. Подскажите пожалуйста, почему крон дублирует запись в БД 3 раза подряд?
Суть крона: Каждый час, он отслеживает нагрузку и отправляет результат в БД. Каждые два часа, должен отрисовываться график. Но cron выполняет задание 3 раза и 3 раза вносит результаты в график. Соответственно, на графике выводится три одинаковых даты.
Вот команда крона (Выполнение каждый час):
0 */1 * * * screen -dmS graph_servers_hour bash -c 'cd /var/gsmanager && php cron.php kJ3odY threads graph_servers_hour'
Вот код на php, который отслеживает крон и отправляет результаты в БД. А так-же, каждые два часа отправляет данные на график:
<?php
if(!DEFINED('GSmanager'))
exit(header('Refresh: 0; URL=http://'.$_SERVER['SERVER_NAME'].'/404'));
class graph_servers_hour extends cron
{
function __construct()
{
global $sql, $start_point;
$servers = $sql->query('SELECT `id`, `online`, `ram_use`, `cpu_use`, `hdd_use`, `date` FROM `servers` ORDER BY `id` ASC');
while($server = $sql->get($servers))
{
if($server['date']+3600 > $start_point)
continue;
$sql->query('INSERT INTO `graph_hour` set `server`="'.$server['id'].'",'
.'`online`="'.$server['online'].'",'
.'`cpu`="'.$server['cpu_use'].'",'
.'`ram`="'.$server['ram_use'].'",'
.'`hdd`="'.$server['hdd_use'].'", `time`="'.$start_point.'"');
}
return NULL;
}
}
?>