powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запуск внешнего скрипта posgresql
6 сообщений из 6, страница 1 из 1
Запуск внешнего скрипта posgresql
    #38529763
papkodimka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
У меня есть табличка, при добавлении записи в таблицу мне необходимо запускать внешний python-скрипт на сервере, передавая ему аттрибуты записи. Подскажите, пожалуйста, каким образом мне это реализовать, возможно есть примеры?
...
Рейтинг: 0 / 0
Запуск внешнего скрипта posgresql
    #38529793
Dim666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
papkodimka,

http://www.postgresql.org/docs/8.4/static/server-programming.html

Выбирайте язык, который знаете (perl, python или чистый С) и пишите функцию, которая будет делать http-запрос на ваш сервер. Можно еще конечно просто "обёртку" для system сделать (чтобы какой-нить wget дёргать), но это слегка опасно.

Потом эту функцию вызывайте внутри триггера AFTER INSERT на вашей табличке. Хотя это не кошерно (особенно когда данные у вас будут вставляться большими пачками).
...
Рейтинг: 0 / 0
Запуск внешнего скрипта posgresql
    #38529812
papkodimka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если взять к примеру, PL/Python, то тогда как мне подключать стандартные модули python'a типа http.client, чтобы в функции на PL/Python отправлять http-запросы в xml-формате?
...
Рейтинг: 0 / 0
Запуск внешнего скрипта posgresql
    #38529882
AndreiSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
papkodimka,

простой пример создания таблицы t(url, param, result) при добавлении записи в которую делаетс запрос на url с параметрами param, а ответ сервера сохраняется в result:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
create table t(
  id serial primary key,
  url text not null,
  param1 text,
  param2 text,
  result text
);

CREATE OR REPLACE FUNCTION http_req()
  RETURNS trigger AS
$BODY$
import urllib

params = {
  'param1': TD['new']['param1'],
  'param2': TD['new']['param2']
}

TD['new']['result'] = urllib.urlopen(TD['new']['url'] + '?' + urllib.urlencode(params)).read()
return  'MODIFY'
$BODY$
  LANGUAGE plpythonu;


CREATE TRIGGER ins_t
  BEFORE INSERT  ON t
  FOR EACH ROW EXECUTE PROCEDURE http_req();
...
Рейтинг: 0 / 0
Запуск внешнего скрипта posgresql
    #38529919
AndreiSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
papkodimkaЕсли взять к примеру, PL/Python, то тогда как мне подключать стандартные модули python'a?все как в обычном python'е, ... хотя это и есть обычный python )
Код: python
1.
2.
3.
4.
5.
6.
#стандартные модули (из site-packages):
import sys, os, time

#модули из произвольных директорий:
sys.path.append('/opt/my_module/')
import my_module
...
Рейтинг: 0 / 0
Запуск внешнего скрипта posgresql
    #38529975
papkodimka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо


AndreiSQLpapkodimkaЕсли взять к примеру, PL/Python, то тогда как мне подключать стандартные модули python'a?все как в обычном python'е, ... хотя это и есть обычный python )
Код: python
1.
2.
3.
4.
5.
6.
#стандартные модули (из site-packages):
import sys, os, time

#модули из произвольных директорий:
sys.path.append('/opt/my_module/')
import my_module
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запуск внешнего скрипта posgresql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]