mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-05 07:25:05 -04:00
Support running multiple media repos. (#7706)
This requires a new config option to specify which media repo should be responsible for running background jobs to e.g. clear out expired URL preview caches.
This commit is contained in:
parent
434716e1d3
commit
b44bdd7f7b
4 changed files with 28 additions and 4 deletions
|
@ -82,6 +82,15 @@ class PreviewUrlResource(DirectServeResource):
|
|||
self.primary_base_path = media_repo.primary_base_path
|
||||
self.media_storage = media_storage
|
||||
|
||||
# We run the background jobs if we're the instance specified (or no
|
||||
# instance is specified, where we assume there is only one instance
|
||||
# serving media).
|
||||
instance_running_jobs = hs.config.media.media_instance_running_background_jobs
|
||||
self._worker_run_media_background_jobs = (
|
||||
instance_running_jobs is None
|
||||
or instance_running_jobs == hs.get_instance_name()
|
||||
)
|
||||
|
||||
self.url_preview_url_blacklist = hs.config.url_preview_url_blacklist
|
||||
self.url_preview_accept_language = hs.config.url_preview_accept_language
|
||||
|
||||
|
@ -94,9 +103,10 @@ class PreviewUrlResource(DirectServeResource):
|
|||
expiry_ms=60 * 60 * 1000,
|
||||
)
|
||||
|
||||
self._cleaner_loop = self.clock.looping_call(
|
||||
self._start_expire_url_cache_data, 10 * 1000
|
||||
)
|
||||
if self._worker_run_media_background_jobs:
|
||||
self._cleaner_loop = self.clock.looping_call(
|
||||
self._start_expire_url_cache_data, 10 * 1000
|
||||
)
|
||||
|
||||
def render_OPTIONS(self, request):
|
||||
request.setHeader(b"Allow", b"OPTIONS, GET")
|
||||
|
@ -397,6 +407,8 @@ class PreviewUrlResource(DirectServeResource):
|
|||
"""
|
||||
# TODO: Delete from backup media store
|
||||
|
||||
assert self._worker_run_media_background_jobs
|
||||
|
||||
now = self.clock.time_msec()
|
||||
|
||||
logger.debug("Running url preview cache expiry")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue