aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorfeld <feld@feld.me>2021-01-21 14:59:51 +0000
committerfeld <feld@feld.me>2021-01-21 14:59:51 +0000
commitd8860eaee46c9bc0a079e90dfb008c54923d7330 (patch)
treefaa150ff299ce6207d5a56541262aaa5e31901cd /lib
parentba40af054cc90417c5b2b347e325b53c7346e29c (diff)
parent5ade430e46e76543b317dc07fdbc0a3fe7367621 (diff)
downloadpleroma-d8860eaee46c9bc0a079e90dfb008c54923d7330.tar.gz
Merge branch 'limiter-setup-fix' into 'develop'
Configurable limits for ConcurrentLimiter for Pleroma.Web.RichMedia.Helpers & Pleroma.Web.MediaProxyWarmingPolicy See merge request pleroma/pleroma!3248
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/application.ex13
-rw-r--r--lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex2
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex
index 203a95004..9e262235e 100644
--- a/lib/pleroma/application.ex
+++ b/lib/pleroma/application.ex
@@ -297,7 +297,16 @@ defmodule Pleroma.Application do
@spec limiters_setup() :: :ok
def limiters_setup do
- [Pleroma.Web.RichMedia.Helpers, Pleroma.Web.MediaProxy]
- |> Enum.each(&ConcurrentLimiter.new(&1, 1, 0))
+ config = Config.get(ConcurrentLimiter, [])
+
+ [Pleroma.Web.RichMedia.Helpers, Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy]
+ |> Enum.each(fn module ->
+ mod_config = Keyword.get(config, module, [])
+
+ max_running = Keyword.get(mod_config, :max_running, 5)
+ max_waiting = Keyword.get(mod_config, :max_waiting, 5)
+
+ ConcurrentLimiter.new(module, max_running, max_waiting)
+ end)
end
end
diff --git a/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex b/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex
index 50d48edc8..8dbf44071 100644
--- a/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex
+++ b/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex
@@ -27,7 +27,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy do
if Pleroma.Config.get(:env) == :test do
fetch(prefetch_url)
else
- ConcurrentLimiter.limit(MediaProxy, fn ->
+ ConcurrentLimiter.limit(__MODULE__, fn ->
Task.start(fn -> fetch(prefetch_url) end)
end)
end