diff options
author | Erik Johnston <erik@matrix.org> | 2016-01-21 16:12:39 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-01-21 16:12:39 +0000 |
commit | 297eded2610087dad2c4a18d98fbbab4d9af455e (patch) | |
tree | 1adb7c723ec3799317f099b5d7c28ffd35192e3d /synapse | |
parent | Merge pull request #516 from matrix-org/erikj/push_perf (diff) | |
parent | Only fetch events for rooms and receipts (diff) | |
download | synapse-297eded2610087dad2c4a18d98fbbab4d9af455e.tar.xz |
Merge pull request #517 from matrix-org/erikj/push_only_room
Only fetch events for rooms and receipts
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/handlers/events.py | 6 | ||||
-rw-r--r-- | synapse/notifier.py | 6 | ||||
-rw-r--r-- | synapse/push/__init__.py | 3 |
3 files changed, 8 insertions, 7 deletions
diff --git a/synapse/handlers/events.py b/synapse/handlers/events.py index aca4b6754e..254b483da6 100644 --- a/synapse/handlers/events.py +++ b/synapse/handlers/events.py @@ -113,10 +113,10 @@ class EventStreamHandler(BaseHandler): @log_function def get_stream(self, auth_user_id, pagin_config, timeout=0, as_client_event=True, affect_presence=True, - only_room_events=False, room_id=None, is_guest=False): + only_keys=None, room_id=None, is_guest=False): """Fetches the events stream for a given user. - If `only_room_events` is `True` only room events will be returned. + If `only_keys` is not None, events from keys will be sent down. """ auth_user = UserID.from_string(auth_user_id) @@ -134,7 +134,7 @@ class EventStreamHandler(BaseHandler): events, tokens = yield self.notifier.get_events_for( auth_user, pagin_config, timeout, - only_room_events=only_room_events, + only_keys=only_keys, is_guest=is_guest, explicit_room_id=room_id ) diff --git a/synapse/notifier.py b/synapse/notifier.py index 262a684f64..6eaa65071e 100644 --- a/synapse/notifier.py +++ b/synapse/notifier.py @@ -331,13 +331,13 @@ class Notifier(object): @defer.inlineCallbacks def get_events_for(self, user, pagination_config, timeout, - only_room_events=False, + only_keys=None, is_guest=False, explicit_room_id=None): """ For the given user and rooms, return any new events for them. If there are no new events wait for up to `timeout` milliseconds for any new events to happen before returning. - If `only_room_events` is `True` only room events will be returned. + If `only_keys` is not None, events from keys will be sent down. If explicit_room_id is not set, the user's joined rooms will be polled for events. @@ -367,7 +367,7 @@ class Notifier(object): after_id = getattr(after_token, keyname) if before_id == after_id: continue - if only_room_events and name != "room": + if only_keys and name not in only_keys: continue new_events, new_key = yield source.get_new_events( user=user, diff --git a/synapse/push/__init__.py b/synapse/push/__init__.py index bbfe9b8a50..e6a28bd8c0 100644 --- a/synapse/push/__init__.py +++ b/synapse/push/__init__.py @@ -126,7 +126,8 @@ class Pusher(object): config = PaginationConfig(from_token=from_tok, limit='1') timeout = (300 + random.randint(-60, 60)) * 1000 chunk = yield self.evStreamHandler.get_stream( - self.user_id, config, timeout=timeout, affect_presence=False + self.user_id, config, timeout=timeout, affect_presence=False, + only_keys=("room", "receipt",), ) # limiting to 1 may get 1 event plus 1 presence event, so |