Request limiter setup: consider {:error, :existing} a success

When the application restarts (which happens after certain config
changes), the limiters are not destroyed, so `ConcurrentLimiter.new`
will produce {:error, :existing}
This commit is contained in:
rinpatch 2020-06-30 18:35:15 +03:00
parent 12fa5541f0
commit 9b73c35ca8
1 changed files with 7 additions and 1 deletions

View File

@ -88,11 +88,17 @@ def limiter_setup do
max_running = Keyword.get(opts, :size, 50) max_running = Keyword.get(opts, :size, 50)
max_waiting = Keyword.get(opts, :max_waiting, 10) max_waiting = Keyword.get(opts, :max_waiting, 10)
:ok = result =
ConcurrentLimiter.new(:"#{@prefix}.#{name}", max_running, max_waiting, ConcurrentLimiter.new(:"#{@prefix}.#{name}", max_running, max_waiting,
wait: wait, wait: wait,
max_retries: retries max_retries: retries
) )
case result do
:ok -> :ok
{:error, :existing} -> :ok
e -> raise e
end
end) end)
:ok :ok