Pad RichMediaWorker timeout to be 2s longer than the Rich Media HTTP timeout
This commit is contained in:
parent
858fd01c01
commit
731f7b87d2
@ -448,7 +448,7 @@ config :pleroma, :rich_media,
|
||||
Pleroma.Web.RichMedia.Parsers.TwitterCard,
|
||||
Pleroma.Web.RichMedia.Parsers.OEmbed
|
||||
],
|
||||
failure_backoff: 60_000,
|
||||
timeout: 5_000,
|
||||
ttl_setters: [
|
||||
Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl,
|
||||
Pleroma.Web.RichMedia.Parser.TTL.Opengraph
|
||||
|
@ -69,9 +69,12 @@ defmodule Pleroma.Web.RichMedia.Helpers do
|
||||
end
|
||||
|
||||
defp http_options do
|
||||
timeout = Config.get!([:rich_media, :timeout])
|
||||
|
||||
[
|
||||
pool: :rich_media,
|
||||
max_body: Config.get([:rich_media, :max_body], 5_000_000)
|
||||
max_body: Config.get([:rich_media, :max_body], 5_000_000),
|
||||
tesla_middleware: [{Tesla.Middleware.Timeout, timeout: timeout}]
|
||||
]
|
||||
end
|
||||
end
|
||||
|
@ -3,6 +3,7 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Pleroma.Workers.RichMediaWorker do
|
||||
alias Pleroma.Config
|
||||
alias Pleroma.Web.RichMedia.Backfill
|
||||
alias Pleroma.Web.RichMedia.Card
|
||||
|
||||
@ -31,6 +32,13 @@ defmodule Pleroma.Workers.RichMediaWorker do
|
||||
end
|
||||
end
|
||||
|
||||
# There is timeout value enforced by Tesla.Middleware.Timeout
|
||||
# which can be found in the RichMedia.Helpers module to allow us to detect
|
||||
# a slow/infinite data stream and insert a negative cache entry for the URL
|
||||
# We pad it by 2 seconds to be certain a slow connection is detected and we
|
||||
# can inject a negative cache entry for the URL
|
||||
@impl Oban.Worker
|
||||
def timeout(_job), do: :timer.seconds(5)
|
||||
def timeout(_job) do
|
||||
Config.get!([:rich_media, :timeout]) + :timer.seconds(2)
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user