diff options
author | Erik Johnston <erik@matrix.org> | 2021-02-24 13:23:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-24 13:23:18 +0000 |
commit | 292792194232e68eb68c5135bb59d037d38b870b (patch) | |
tree | 3951c198903b824b6db2cb05564ab3600eaad51f /synapse/push | |
parent | Refactor to ensure we call check_consistency (#9470) (diff) | |
download | synapse-292792194232e68eb68c5135bb59d037d38b870b.tar.xz |
Clean up `ShardedWorkerHandlingConfig` (#9466)
* Split ShardedWorkerHandlingConfig This is so that we have a type level understanding of when it is safe to call `get_instance(..)` (as opposed to `should_handle(..)`). * Remove special cases in ShardedWorkerHandlingConfig. `ShardedWorkerHandlingConfig` tried to handle the various different ways it was possible to configure federation senders and pushers. This led to special cases that weren't hit during testing. To fix this the handling of the different cases is moved from there and `generic_worker` into the worker config class. This allows us to have the logic in one place and allows the rest of the code to ignore the different cases.
Diffstat (limited to 'synapse/push')
-rw-r--r-- | synapse/push/pusherpool.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/synapse/push/pusherpool.py b/synapse/push/pusherpool.py index 3936bf8784..21f14f05f0 100644 --- a/synapse/push/pusherpool.py +++ b/synapse/push/pusherpool.py @@ -59,7 +59,6 @@ class PusherPool: def __init__(self, hs: "HomeServer"): self.hs = hs self.pusher_factory = PusherFactory(hs) - self._should_start_pushers = hs.config.start_pushers self.store = self.hs.get_datastore() self.clock = self.hs.get_clock() @@ -68,6 +67,9 @@ class PusherPool: # We shard the handling of push notifications by user ID. self._pusher_shard_config = hs.config.push.pusher_shard_config self._instance_name = hs.get_instance_name() + self._should_start_pushers = ( + self._instance_name in self._pusher_shard_config.instances + ) # We can only delete pushers on master. self._remove_pusher_client = None |