summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--synapse/app/_base.py25
1 files changed, 18 insertions, 7 deletions
diff --git a/synapse/app/_base.py b/synapse/app/_base.py

index 10f75c4e69..a206c0015c 100644 --- a/synapse/app/_base.py +++ b/synapse/app/_base.py
@@ -43,8 +43,11 @@ from synapse.crypto import context_factory from synapse.events.presence_router import load_legacy_presence_router from synapse.events.spamcheck import load_legacy_spam_checkers from synapse.events.third_party_rules import load_legacy_third_party_event_rules -from synapse.logging.context import PreserveLoggingContext -from synapse.metrics.background_process_metrics import wrap_as_background_process +from synapse.logging.context import PreserveLoggingContext, defer_to_thread +from synapse.metrics.background_process_metrics import ( + run_as_background_process, + wrap_as_background_process, +) from synapse.metrics.jemalloc import setup_jemalloc_stats from synapse.util.caches.lrucache import setup_expire_lru_cache_entries from synapse.util.daemonize import daemonize_process @@ -436,14 +439,22 @@ def setup_state_compressor(hs): database=db_args["database"], ) + def run_state_compressor(): + run_as_background_process( + desc="State Compressor", + func=defer_to_thread, + reactor=hs.get_reactor(), + f=auto_compressor.compress_largest_rooms, + db_url=db_url, + chunk_size=10, + default_levels="100,50,25", + number_of_rooms=10, + ) + clock = hs.get_clock() clock.looping_call( - auto_compressor.compress_largest_rooms, + run_state_compressor, 1 * 60 * 1000, - db_url=db_url, - chunk_size=10, - default_levels="100,50,25", - number_of_rooms=10, )