获取池的计数

Get the count of pool

我正在使用 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]
])

有什么方法可以捕获 running/queuing 连接的数量并实时监控它们吗? 谢谢

您可以将 get_stats/1 function on :hackney_pool. This returns a proplist (keyword list in Elixir) 用于:

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

然后你可以使用Keyword.fetch/2函数得到:in_use_count值,它会告诉你活动连接数。不过,我不是 100% 确定您将如何监控它。