|
Модераторы: korob2001, ginnie |
|
admsasha |
|
|||
Опытный Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Требуется написать демон, который будет считывать данные с базы и производить определенные действия. Каким образом можно узнать, что в базе есть новые строки не делая ежесекундно запросы типа "select .. where checked=1" ? Использую DBI (mysql). В базу данные попадают через CGI скрипт (с сайта) который находится на том же сервере, что и данный демон.
|
|||
|
||||
arto |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
а какую задачу вы хотите решить таким образом?
|
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Не делая ежесекундно запросы вообще или не делаю запросы ежесекундно типа "..." ? -------------------- менеджер по кодеврайтингу |
|||
|
||||
admsasha |
|
|||
Опытный Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Добавлено через 1 минуту и 11 секунд Не понял вопроса. Не тыркать базу лишний раз, не нагружать CPU ненужными запросами. |
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Вот мне самому интересно, как считывать данные с базы, не делая туда запросы? -------------------- менеджер по кодеврайтингу |
|||
|
||||
admsasha |
|
|||
Опытный Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
||||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Сообщения между двумя скриптами - можно и через сокеты и даже через те же сигналы попробовать.. А если у тебя второй скрипт сам будет почти ежесекундно кидать данные в базу? Мне кажется тут надо саму архитектуру проекта пересмотреть и не "изобретать велосипед".. -------------------- менеджер по кодеврайтингу |
|||
|
||||
admsasha |
|
||||
Опытный Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Добавлено через 29 секунд Поэтому я и задал вопрос Добавлено через 3 минуты и 5 секунд
|
||||
|
|||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Ну так скрипт, который записывает данные в базу, сам запускает скрипт, который эти данные считывает, не делая регулярных запросов! -------------------- менеджер по кодеврайтингу |
|||
|
||||
admsasha |
|
|||
Опытный Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
||||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Тогда CGi-скрипт раз в 30-60 минут запускает скрипт, который записывает данные в базу - если работа скрипта завершена без ошибок - то считаем, что данные успешно записаны и быстро отдаем ответ! -------------------- менеджер по кодеврайтингу |
|||
|
||||
alezzz |
|
|||
сплю... Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
admsasha, держи в memcached ключ "есть/нет данные", читай его ежесекундно, если архитектура сложно меняется.
|
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Так сложно а не проще тогда будет просто файл создавать? Есть данные - "не пустой" файл, нет данных - файл с размером 0 байт. Частота проверки размера файла - гораздо выше, нежели остальные способы, там в секунду больше одного раза можно проверить -------------------- менеджер по кодеврайтингу |
|||
|
||||
alezzz |
|
|||
сплю... Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
Не, файл - это обращение к диску, мне спокойнее к памяти обращаться.
Добавлено через 8 минут хотя... если что-то простое, не сильно замороченое, то можно и файле флаг держать |
|||
|
||||
Bulat |
|
|||
татарский Нео Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
в memcached у тебя ключи, значения и т.п. А мой способ - это даже не "флаг в файле", а "свойство файла как флаг". Есть данные - файл с размером 1 байт, нет данных(по умолчанию) файл с размером 0 байт. Причем для определения свойства совсем не обязательно "открывать" данный файл(хэндл и все такое) - достаточно считать размер файла специальной функцией из файловой системы... memcached еще надо устанавливать и т.п. А здесь все готовое - pure perl -------------------- менеджер по кодеврайтингу |
|||
|
||||
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |