Получить счет пула - PullRequest
       40

Получить счет пула

2 голосов
/ 24 сентября 2019

Я использую пулы HTTPoison и Hackney:

:hackney_pool.child_spec(:start, [checkout_timeout: ..., max_connections: 100]),
:hackney_pool.child_spec(:trigger, [checkout_timeout: ..., max_connections: 100]),
:hackney_pool.child_spec(:result, [checkout_timeout: ..., max_connections: 100])

...

HTTPoison.get('...', [...], [
...,
hackney: [pool: :start]
])

Есть ли способ отловить количество запущенных / стоящих в очереди соединений и отслеживать их в режиме реального времени?Спасибо

1 Ответ

4 голосов
/ 24 сентября 2019

Вы можете использовать функцию get_stats / 1 для :hackney_pool.Это возвращает proplist (список ключевых слов в Elixir) с:

[ {:name, "pool_name"},
  {:max, 100},
  {:in_use_count,  19},
  {:free_count, 81},
  {:queue_count, 0}
]

Затем вы можете использовать функцию Keyword.fetch / 2 , чтобы получить :in_use_countзначение, которое скажет вам количество активных соединений.Я не уверен на 100% в том, как вы будете это контролировать.

...