LINUX.ORG.RU

postgres + http_get

 ,


0

1

Всем привет.

Вопрос тут скорее к разработчикам на сайте, чем к админам наверное... Кто знает, в плагине к Postgres `http_get` при вызове http_get каждый раз создается новое TCP-соединение к серверу, которое закрывается после получения ответа или все-таки он держит соединение между вызовами?

С точки зрения исходника этого плагина на самом деле еще больше вопросов - почему в нем имеются глобальные переменные и как сервер поддерживает потокобезопасность в нем

Решение базируется на библиотеке curl, хранит глобальный CURL *g_http_handle. Но насколько я знаю функции curl не потокобезопасные и для каждого отдельного клиента нужно создавать отдельный CURL * https://github.com/pramsey/pgsql-http/blob/master/http.c



Последнее исправление: sotlef (всего исправлений: 2)

Предлагаешь за тебя её исходники читать? Так-то я бы сразу отказался от бредовой идеи делать http соединения из базы.

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 1)
Ответ на: комментарий от slovazap

Вопрос по сути к тем, кто уже разрабатывал плагины сам для постгры либо работал с этим плагином уже

sotlef
() автор топика
Ответ на: комментарий от sotlef

Но насколько я знаю функции curl не потокобезопасные
и для для каждого отдельного клиента нужно создавать отдельный CURL...

это требование выполняется или нет?

Т.е. в рамках одного клиентского подключения все выполняется в одном потоке?

ну и какая теперь разница сколько служебных потоков в одном клиентском подключении на стороне сервера?

если что клиент может создать и несколько коннектов к одному и тому же постгрес, и у каждого будет отдельный процесс на стороне сервера.

anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 2)

Кто знает, в плагине к Postgres http_get при вызове http_get каждый раз создается новое TCP-соединение к серверу, которое закрывается после получения ответа или все-таки он держит соединение между вызовами?

Ну блин, первое же совпадение по «socket». Все определяется значением переменной g_use_keepalive (вангую что глобальной). Дальше разбирайся сам уже.

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid

Дело не в keepalive, тут как раз я ждал ответа, который получил от anonymous2

sotlef
() автор топика
9 декабря 2021 г.

каждый раз создается новое TCP-соединение к серверу, которое закрывается после получения ответа или все-таки он держит соединение между вызовами?

в https://github.com/RekGRpth/pg_curl вроде держится

RekGRpth
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.