forked from MirrorHub/synapse
Delete completes to-device messages earlier in /sync (#10124)
I hope this will improve https://github.com/matrix-org/synapse/issues/9564.
This commit is contained in:
parent
a0cd8ae8cb
commit
fa1db8f156
2 changed files with 12 additions and 10 deletions
1
changelog.d/10124.misc
Normal file
1
changelog.d/10124.misc
Normal file
|
@ -0,0 +1 @@
|
|||
Work to improve the responsiveness of `/sync` requests.
|
|
@ -315,6 +315,17 @@ class SyncHandler:
|
|||
if context:
|
||||
context.tag = sync_type
|
||||
|
||||
# if we have a since token, delete any to-device messages before that token
|
||||
# (since we now know that the device has received them)
|
||||
if since_token is not None:
|
||||
since_stream_id = since_token.to_device_key
|
||||
deleted = await self.store.delete_messages_for_device(
|
||||
sync_config.user.to_string(), sync_config.device_id, since_stream_id
|
||||
)
|
||||
logger.debug(
|
||||
"Deleted %d to-device messages up to %d", deleted, since_stream_id
|
||||
)
|
||||
|
||||
if timeout == 0 or since_token is None or full_state:
|
||||
# we are going to return immediately, so don't bother calling
|
||||
# notifier.wait_for_events.
|
||||
|
@ -1230,16 +1241,6 @@ class SyncHandler:
|
|||
since_stream_id = int(sync_result_builder.since_token.to_device_key)
|
||||
|
||||
if since_stream_id != int(now_token.to_device_key):
|
||||
# We only delete messages when a new message comes in, but that's
|
||||
# fine so long as we delete them at some point.
|
||||
|
||||
deleted = await self.store.delete_messages_for_device(
|
||||
user_id, device_id, since_stream_id
|
||||
)
|
||||
logger.debug(
|
||||
"Deleted %d to-device messages up to %d", deleted, since_stream_id
|
||||
)
|
||||
|
||||
messages, stream_id = await self.store.get_new_messages_for_device(
|
||||
user_id, device_id, since_stream_id, now_token.to_device_key
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue