diff options
author | Erik Johnston <erik@matrix.org> | 2021-01-18 15:47:59 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-18 15:47:59 +0000 |
commit | 6633a4015a7b4ba60f87c5e6f979a9c9d8f9d8fe (patch) | |
tree | 6e111e6f153f80e324f69f418e33fff396c19773 /synapse/config | |
parent | Enforce all replication HTTP clients calls use kwargs (#9144) (diff) | |
download | synapse-6633a4015a7b4ba60f87c5e6f979a9c9d8f9d8fe.tar.xz |
Allow moving account data and receipts streams off master (#9104)
Diffstat (limited to 'synapse/config')
-rw-r--r-- | synapse/config/workers.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/synapse/config/workers.py b/synapse/config/workers.py index 364583f48b..f10e33f7b8 100644 --- a/synapse/config/workers.py +++ b/synapse/config/workers.py @@ -56,6 +56,12 @@ class WriterLocations: to_device = attr.ib( default=["master"], type=List[str], converter=_instance_to_list_converter, ) + account_data = attr.ib( + default=["master"], type=List[str], converter=_instance_to_list_converter, + ) + receipts = attr.ib( + default=["master"], type=List[str], converter=_instance_to_list_converter, + ) class WorkerConfig(Config): @@ -127,7 +133,7 @@ class WorkerConfig(Config): # Check that the configured writers for events and typing also appears in # `instance_map`. - for stream in ("events", "typing", "to_device"): + for stream in ("events", "typing", "to_device", "account_data", "receipts"): instances = _instance_to_list_converter(getattr(self.writers, stream)) for instance in instances: if instance != "master" and instance not in self.instance_map: @@ -141,6 +147,16 @@ class WorkerConfig(Config): "Must only specify one instance to handle `to_device` messages." ) + if len(self.writers.account_data) != 1: + raise ConfigError( + "Must only specify one instance to handle `account_data` messages." + ) + + if len(self.writers.receipts) != 1: + raise ConfigError( + "Must only specify one instance to handle `receipts` messages." + ) + self.events_shard_config = ShardedWorkerHandlingConfig(self.writers.events) # Whether this worker should run background tasks or not. |