Skip to content
Snippets Groups Projects
Commit e780492e authored by Erik Johnston's avatar Erik Johnston
Browse files

Merge pull request #102 from matrix-org/randomize_stream_timeout

Add some randomness to the user specified timeout on event streams to mi...
parents 5b5c7a28 130df8fb
Branches
Tags
No related merge requests found
...@@ -23,6 +23,7 @@ from synapse.events.utils import serialize_event ...@@ -23,6 +23,7 @@ from synapse.events.utils import serialize_event
from ._base import BaseHandler from ._base import BaseHandler
import logging import logging
import random
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
...@@ -72,6 +73,14 @@ class EventStreamHandler(BaseHandler): ...@@ -72,6 +73,14 @@ class EventStreamHandler(BaseHandler):
rm_handler = self.hs.get_handlers().room_member_handler rm_handler = self.hs.get_handlers().room_member_handler
room_ids = yield rm_handler.get_rooms_for_user(auth_user) room_ids = yield rm_handler.get_rooms_for_user(auth_user)
if timeout:
# If they've set a timeout set a minimum limit.
timeout = max(timeout, 500)
# Add some randomness to this value to try and mitigate against
# thundering herds on restart.
timeout = random.randint(int(timeout*0.9), int(timeout*1.1))
with PreserveLoggingContext(): with PreserveLoggingContext():
events, tokens = yield self.notifier.get_events_for( events, tokens = yield self.notifier.get_events_for(
auth_user, room_ids, pagin_config, timeout auth_user, room_ids, pagin_config, timeout
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment