Add setting that says how much time to keep retrying activity delivery
This commit is contained in:
parent
a3bd0356e2
commit
0c280c7af6
2 changed files with 22 additions and 3 deletions
|
@ -131,7 +131,6 @@ max-accounts: 3
|
||||||
# Federation
|
# Federation
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
|
||||||
# Whether to support federation. This includes:
|
# Whether to support federation. This includes:
|
||||||
#
|
#
|
||||||
# * Accept activities from other servers in the inbox
|
# * Accept activities from other servers in the inbox
|
||||||
|
@ -148,3 +147,11 @@ hashids-salt-file: config/hashids_salt
|
||||||
# Whether to reject an HTTP signature when we want to insert a new key or usage
|
# Whether to reject an HTTP signature when we want to insert a new key or usage
|
||||||
# record but reached the limit setting
|
# record but reached the limit setting
|
||||||
reject-on-max-keys: true
|
reject-on-max-keys: true
|
||||||
|
|
||||||
|
# The duration of time during which a remote actor is unreachable and we
|
||||||
|
# periodically retry to deliver them activities. After that period of time, we
|
||||||
|
# stop trying to deliver and we remove them from follower lists of local
|
||||||
|
# actors.
|
||||||
|
drop-delivery-after:
|
||||||
|
amount: 25
|
||||||
|
unit: weeks
|
||||||
|
|
|
@ -31,8 +31,10 @@ import Control.Exception (throw)
|
||||||
import Data.Aeson (Result (..), fromJSON, withObject, (.!=),
|
import Data.Aeson (Result (..), fromJSON, withObject, (.!=),
|
||||||
(.:?))
|
(.:?))
|
||||||
import Data.FileEmbed (embedFile)
|
import Data.FileEmbed (embedFile)
|
||||||
import Data.Time.Interval (TimeInterval)
|
import Data.Time.Clock
|
||||||
import Data.Time.Interval.Aeson (interval)
|
import Data.Time.Interval
|
||||||
|
import Data.Time.Interval.Aeson
|
||||||
|
import Data.Time.Units
|
||||||
import Data.Yaml (decodeEither')
|
import Data.Yaml (decodeEither')
|
||||||
import Database.Persist.Postgresql (PostgresConf)
|
import Database.Persist.Postgresql (PostgresConf)
|
||||||
import Language.Haskell.TH.Syntax (Exp, Name, Q)
|
import Language.Haskell.TH.Syntax (Exp, Name, Q)
|
||||||
|
@ -139,6 +141,11 @@ data AppSettings = AppSettings
|
||||||
-- over HTTP, which possibly means we have to do more HTTP key fetching,
|
-- over HTTP, which possibly means we have to do more HTTP key fetching,
|
||||||
-- and the target server gets a higher load of key fetch GET requests.
|
-- and the target server gets a higher load of key fetch GET requests.
|
||||||
, appRejectOnMaxKeys :: Bool
|
, appRejectOnMaxKeys :: Bool
|
||||||
|
-- | The duration of time during which a remote actor is unreachable and
|
||||||
|
-- we periodically retry to deliver them activities. After that period of
|
||||||
|
-- time, we stop trying to deliver and we remove them from follower lists
|
||||||
|
-- of local actors.
|
||||||
|
, appDropDeliveryAfter :: NominalDiffTime
|
||||||
}
|
}
|
||||||
|
|
||||||
instance FromJSON AppSettings where
|
instance FromJSON AppSettings where
|
||||||
|
@ -185,8 +192,13 @@ instance FromJSON AppSettings where
|
||||||
appCapabilitySigningKeyFile <- o .: "capability-signing-key"
|
appCapabilitySigningKeyFile <- o .: "capability-signing-key"
|
||||||
appHashidsSaltFile <- o .: "hashids-salt-file"
|
appHashidsSaltFile <- o .: "hashids-salt-file"
|
||||||
appRejectOnMaxKeys <- o .: "reject-on-max-keys"
|
appRejectOnMaxKeys <- o .: "reject-on-max-keys"
|
||||||
|
appDropDeliveryAfter <- ndt <$> o .: "drop-delivery-after"
|
||||||
|
|
||||||
return AppSettings {..}
|
return AppSettings {..}
|
||||||
|
where
|
||||||
|
toSeconds :: TimeInterval -> Second
|
||||||
|
toSeconds = toTimeUnit
|
||||||
|
ndt = fromIntegral . toSeconds . interval
|
||||||
|
|
||||||
-- | Settings for 'widgetFile', such as which template languages to support and
|
-- | Settings for 'widgetFile', such as which template languages to support and
|
||||||
-- default Hamlet settings.
|
-- default Hamlet settings.
|
||||||
|
|
Loading…
Reference in a new issue