HTTPoison вручную закрыть соединение

Документация Apple немного неясна в строгой политике. В приложении есть определенные приложения, которые делают спорадические сетевые вызовы во время работы в фоновом режиме как приложение, основанное на местоположении. Примером может служить приложение Geoloqi.

1
задан Nema Ga 18 March 2019 в 00:20
поделиться

2 ответа

Из HTTPoison README:

Обычно hackney открывает и закрывает соединения по требованию , но также создает пул по умолчанию соединений, которые повторно используются для запросов к одному и тому же хосту. Если соединение и хост поддерживают keepalive, соединение остается открытым до тех пор, пока оно не будет явно закрыто.

HTTPoison не экспортирует close для базового сокета, и с 2017 года существует открытый выпуск для этого.

Между тем, вы можете позвонить hackney_pool:stop_pool(:default). Это, очевидно, не оптимальное решение в любом случае, и оно имеет огромные накладные расходы. Поэтому я бы посоветовал либо отправить запрос на включение HTTPoison, включив функцию закрытия соединения (через делегирование ;hackney_response.close/1 ) или , просто избавиться от избыточности HTTPoison и просто используйте hackney.

0
ответ дан Aleksei Matiushkin 18 March 2019 в 00:20
поделиться

Простейшим решением оказалось настройка pool: false, весь запрос выглядит так:

HTTPoison.get(url, [], [
  timeout: 5_000,
  recv_timeout: 5_000,
  proxy: proxy,
  hackney: [pool: false],
  ssl: [{:versions, [:'tlsv1.2']}]
])
0
ответ дан Paweł Obrok 18 March 2019 в 00:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: