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

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

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

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

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

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

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

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

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

Sectoid ★★★★★ ()