feat(retention): run eviction from an Oban cron worker
Adds config :pleroma, :retention (disabled by default) and an hourly crontab entry that evicts one bounded batch per run.
This commit is contained in:
parent
1ebcd4f79d
commit
cd796f007d
4 changed files with 126 additions and 1 deletions
|
|
@ -611,7 +611,8 @@ config :pleroma, Oban,
|
|||
crontab: [
|
||||
{"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
|
||||
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker},
|
||||
{"*/10 * * * *", Pleroma.Workers.Cron.AppCleanupWorker}
|
||||
{"*/10 * * * *", Pleroma.Workers.Cron.AppCleanupWorker},
|
||||
{"0 * * * *", Pleroma.Workers.Cron.RetentionWorker}
|
||||
]
|
||||
|
||||
config :pleroma, Pleroma.Formatter,
|
||||
|
|
@ -920,6 +921,12 @@ config :web_push_encryption, http_client: Pleroma.HTTP.WebPush
|
|||
|
||||
config :pleroma, :instances_favicons, enabled: false
|
||||
|
||||
config :pleroma, :retention,
|
||||
enabled: false,
|
||||
max_objects: nil,
|
||||
batch_size: 500,
|
||||
keep_non_public: false
|
||||
|
||||
config :floki, :html_parser, Floki.HTMLParser.FastHtml
|
||||
|
||||
config :pleroma, Pleroma.Web.Auth.Authenticator, Pleroma.Web.Auth.PleromaAuthenticator
|
||||
|
|
|
|||
|
|
@ -3310,6 +3310,40 @@ config :pleroma, :config_description, [
|
|||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: :retention,
|
||||
type: :group,
|
||||
description:
|
||||
"Bounded retention: continuously evict old remote threads nobody local interacted with." <>
|
||||
" Local posts and threads with local interactions are always kept.",
|
||||
children: [
|
||||
%{
|
||||
key: :enabled,
|
||||
type: :boolean,
|
||||
description: "Run the retention worker from the Oban crontab"
|
||||
},
|
||||
%{
|
||||
key: :max_objects,
|
||||
type: :integer,
|
||||
description:
|
||||
"Optional watermark. When the objects table is estimated to hold more rows than this," <>
|
||||
" the oldest unpinned remote threads are evicted regardless of their age.",
|
||||
suggestions: [nil, 1_000_000]
|
||||
},
|
||||
%{
|
||||
key: :batch_size,
|
||||
type: :integer,
|
||||
description: "Maximum number of threads to evict per worker run. Default: 500.",
|
||||
suggestions: [500]
|
||||
},
|
||||
%{
|
||||
key: :keep_non_public,
|
||||
type: :boolean,
|
||||
description: "Also keep threads that contain non-public posts"
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :ex_aws,
|
||||
key: :s3,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue