diff options
author | Erik Johnston <erik@matrix.org> | 2020-01-17 10:27:19 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-17 10:27:19 +0000 |
commit | a8a50f5b5746279379b4511c8ecb2a40b143fe32 (patch) | |
tree | 5a195c03f3a7d2c20af9bbcb57d1c77fb3dafc11 /synapse/app | |
parent | Clarify the `account_validity` and `email` sections of the sample configurati... (diff) | |
download | synapse-a8a50f5b5746279379b4511c8ecb2a40b143fe32.tar.xz |
Wake up transaction queue when remote server comes back online (#6706)
This will be used to retry outbound transactions to a remote server if we think it might have come back up.
Diffstat (limited to 'synapse/app')
-rw-r--r-- | synapse/app/federation_sender.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/synapse/app/federation_sender.py b/synapse/app/federation_sender.py index a57cf991ac..38d11fdd0f 100644 --- a/synapse/app/federation_sender.py +++ b/synapse/app/federation_sender.py @@ -158,6 +158,13 @@ class FederationSenderReplicationHandler(ReplicationClientHandler): args.update(self.send_handler.stream_positions()) return args + def on_remote_server_up(self, server: str): + """Called when get a new REMOTE_SERVER_UP command.""" + + # Let's wake up the transaction queue for the server in case we have + # pending stuff to send to it. + self.send_handler.wake_destination(server) + def start(config_options): try: @@ -205,7 +212,7 @@ class FederationSenderHandler(object): to the federation sender. """ - def __init__(self, hs, replication_client): + def __init__(self, hs: FederationSenderServer, replication_client): self.store = hs.get_datastore() self._is_mine_id = hs.is_mine_id self.federation_sender = hs.get_federation_sender() @@ -226,6 +233,9 @@ class FederationSenderHandler(object): self.store.get_room_max_stream_ordering() ) + def wake_destination(self, server: str): + self.federation_sender.wake_destination(server) + def stream_positions(self): return {"federation": self.federation_position} |