Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PostgreSQL > Мониторинг изменений в базе |
Автор: DiFor 11.5.2011, 07:42 |
Есть несколько сервисов. Один из них 1С сервер, второй веб-ориентированный сервис. 1С сервер делает выгрузку части данных в постгрес. На веб стороне необходимо добится некой реализации реал-тайма и после внесения изменений в базу извне как то добавление записей, удалений, изменений нужно делать различные телодвижения. Веб система построена на пхп. В идеале необходимо после внесений каких-либо изменений "дергать" скрипт и вообще в идеале с каким-то параметрами как например имя таблицы и тому подобное. Подскажите пожалуйста, есть ли какое-нибудь решение сего? |
Автор: LSD 11.5.2011, 10:49 |
http://www.postgresql.org/docs/8.1/static/triggers.html |
Автор: DiFor 11.5.2011, 11:10 |
Тригеры это понятно, а вот увеют ли тригеры дергать пхп скрипт находящийся на сервере? |
Автор: DiFor 11.5.2011, 12:06 |
Потому что необходимо добиться реал тайма который завязан на COMET. После добавления новых элементов, они должны появится на странице. вот почему |
Автор: LSD 11.5.2011, 12:24 |
И как вызов PHP скрипта поможет обновить данные в браузере пользователя? |
Автор: DiFor 11.5.2011, 14:38 |
Посмотрите пожалуйста что такое COMET. Вопрос не о браузере, а о реализации контроля изменений в базе |
Автор: LSD 11.5.2011, 15:54 |
Реализовать можно кучей разных способов: - можно завести в базе табличку, в которую писать: имя таблицы, ид записи которая изменилась, а на стороне сервера постоянно сканировать эту таблицу - можно из тригера послать POST/GET с необходимыми параметрами - можно вызвать внешнюю программу, которая каким-то образом сделает нужную работу |
Автор: DiFor 12.5.2011, 08:14 |
оу, вот это уже лучше. а можно попросить пример реализации второго и третьего случая |
Автор: LSD 12.5.2011, 09:55 |
Ставишь http://pgfoundry.org/projects/pljava/ или даже https://public.commandprompt.com/projects/plphp/ и пишешь нужный код. Только учти, что тебе нужен untrusted режим. |