Вопрос по нагрузке

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Есть таблица в бд, с примерно 50-100 записями (не более).
Через cron нужно сделать сканирование таблицы, примерно вот так:
Код:
$time = time();
$res = select("select `id`, `name`, `type` from `tbl` where `time` >= $time");
if(rows($res) > 0) {
 select("delete from `tbl` where `time` >= $time");
   while() {
        //Какие то действия
   }
}
Ну и выполняться скрипт должен каждую секунду
Собственно, вопрос: Сильно ли это нагрузит mysql и не заддосит ли он сам себя? Допустим, что серв будет с 2гб оперативы.
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
А если случится так, что нагрузка на сервер будет высокой и произойдет запрос к бд с выборкой данных и сервер "подзависнет" на секунду и произойдет второй запрос (т.к через каждую секунду), то будет два действия по одним и тем же строкам. Как этого избежать? Чтобы проверить, запущен ли этот cron-скрипт или нет. Тоже через базу? Сделать поле и по нему проверять запущено или нет?
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
А если случится так, что нагрузка на сервер будет высокой и произойдет запрос к бд с выборкой данных и сервер "подзависнет" на секунду
в листе процессов MySQL будут висеть эти запросы


Как этого избежать?
При входе в скрипт пишите в сессию переменную, по выходе удаляйте, перед выполнением проверяйте ее наличие
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
При входе в скрипт пишите в сессию переменную, по выходе удаляйте, перед выполнением проверяйте ее наличие
о_О Я думал, что сессии можно использовать только для пользователей (окружения), но оказывается ещё и для cron'a. Спасибо:)
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
о_О Я думал, что сессии можно использовать только для пользователей
а вы скрипты через wget запускайте и будет полная иммитация пользователя
А как сделать защиту от того, чтобы не смог запустить скрипт какой-нибудь умный пользователь?
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
А как сделать защиту от того, чтобы не смог запустить скрипт какой-нибудь умный пользователь?
тогда придется запускать скрипт из консоли прямо через обработчик php
usr/bin/php var/www/site.ru/script.php

а в .htaccess запретить доступ к нему
 
Статус
Закрыто для дальнейших ответов.
Верх Низ