Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > держать соединение с MySQL


Автор: gcc 8.9.2008, 15:30
есть программа PowerDNS на С++ (и другие postfix) там всегда держиться одно соединение с СУБД, как только  добавляется что-то в таблицы (или изменяется, или удаляется) , то программа сразу реагирует...

как это называется? в perl это можно сделать?

Автор: sir_nuf_nuf 8.9.2008, 16:08
gcc, ничего не понятно...

Если вам нужно поддерживать соединение с БД - то вариантов куча.
Зависит от того, что у вас за программа:
если просто скрипт - то достаточно создать соединение и не разрывать его (делать Ping иногда)
если mod_perl скрипт - то есть Apache::DBI
если CGI скрипт - то никак. ибо каждый раз - новый процесс запускается.


Если вы хотите получать уведомления об изменениях в базе данных - думаю такого нет (я не прав ?)
Вам нужно самому время от времен обращаться к БД - что бы узнать изменения

Автор: gcc 8.9.2008, 16:19
ну postfix держит соединение всегда (по крайней мере так видно)

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

(или я перепутал всё? но именно так и работает, или синхронизирует что ли с дампом как-то?)

удобно было если это так можно сделать...

Автор: ginnie 8.9.2008, 16:30
Коллеги, похоже на разговор разработчика с заказчиком  smile

gcc, можно задавать конкретные вопросы?

Для информации, postfix не разрывает соединение с БД только при использовании специального proxy-модуля. При каждом действии выполняются необходимые запросы к БД, поэтому все изменения в БД корректно обрабатываются.

Какой именно функционал нужен Вашей программе и что это за программа (sir_nuf_nuf, варианты уже описал)?

Автор: sir_nuf_nuf 8.9.2008, 16:34
gcc, ага понял.

варианта 3

1) ваше приложение (типа демона postfix) запущено постоянно и раз в секунду (минуту..) делает запрос к БД.
Соответственно синхронизует таблицы и свои структуры данных

2) вы пишете UDF для mysql (самодельная функция), которая при будет отправлять запросы вашему приложению, например через TCP/IP.   А на все интересующие вас события (например вставка в таблицу) вешаете тригер, который вызывает эту функцию, которая обращается к вашему приложению, которое делает все что нужно =)

3) возможно существует какая - то фичча, встроенная в протокол БД, когда БД сама обращается к клиенту. Но это МАЛОВЕРОЯТНО. Никогда про такое не слышал..



Автор: gcc 8.9.2008, 16:37
1) давно хотел узнать именно про это, потому что хотел сделать конфиг apache22 в бд, то есть чтобы конфигурировать именно из БД для удобства. Если это делать в самой прогармме взамен текстовых файлов, то нужно пол apache22 переписывать и всё его модули... (этого нету ни где) (потом передумал) 

2) самое главное хотел, вообще-то, создавать аккаунты на сервере, то есть читать с таблицы и создавать так же как и postfix ... думаю что этот вариант будет хорший  smile   smile  smile  smile 

Код

gcc, можно задавать конкретные вопросы?

второй пункт - это и есть конкретный вопрос...

Код

proxy-модуля


это только proxy-модуль это делает?

если нет, то как это называеться?  чтобы найти в гугле, а то не знаю что искать, если конечно получиться хоть что-то...

Автор: gcc 8.9.2008, 21:36
про прокси я ничего не нашел... 

Автор: ginnie 9.9.2008, 11:24
Уважаемый gcc, про proxy-модуль я писал по памяти. Сейчас посмотрел http://www.postfix.org/MYSQL_README.html, там написано, что "сильнонагруженные почтовые сервера, использующие mysql maps создают достаточно много параллельных соединений к СУБД. Их количество можно уменьшить, используя модуль Postfix proxymap." Следовательно proxymap создает пул соединений с СУБД, и раздает их процессам postfix, к Вашей теме это отношения не имеет.

Не могли бы Вы пояснить, зачем нужно хранить конфигурацию web-сервера в БД? Мне такое в голову пока не приходило.

Автор: gcc 13.9.2008, 10:17
Цитата(ginnie @ 9.9.2008,  11:24)

Не могли бы Вы пояснить, зачем нужно хранить конфигурацию web-сервера в БД? Мне такое в голову пока не приходило.

Уважаемый ginnie, зачем хранить таблицу в текстовых файлах?

или зачем тогда сделали возможность использование СУБД в DNS, Samba, почта, PAM, ftp, etc?

для удобства изменения таблицы конфигов вообще-то... если бы была возможность быстро это сделать, а так половину apache22 и все его моды надо переписывать  

Автор: ginnie 15.9.2008, 12:43
Уважаемый gcc, не погли бы Вы пояснить в чем для Вас удобство изменения конфигурации в БД по сравнению с текстовым файлом конфигурации?

Автор: gcc 15.9.2008, 12:46
Уважаемый ginnie, управлять с помощью веб-скрипвто, уже это не надо, я просто так написал (думал чтобы удобно было, вообще-то сайтов штук 40)  smile 

ЗЫ  кстате, где-то нашел что apache13 со всеми директивами может работаеть с MySQL и SQLite

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)