diff options
author | Erik Johnston <erik@matrix.org> | 2016-04-01 14:06:00 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-04-01 14:06:00 +0100 |
commit | 8d73cd502bd8ee6903c81f20f79fe5e1509692e3 (patch) | |
tree | ab50c21d3746ea5f56846bb1633e9ede7151f3c5 /synapse/handlers/message.py | |
parent | Filter rooms list before chunking (diff) | |
download | synapse-8d73cd502bd8ee6903c81f20f79fe5e1509692e3.tar.xz |
Add concurrently_execute function
Diffstat (limited to 'synapse/handlers/message.py')
-rw-r--r-- | synapse/handlers/message.py | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py index 5c50c611ba..0bb111d047 100644 --- a/synapse/handlers/message.py +++ b/synapse/handlers/message.py @@ -21,6 +21,7 @@ from synapse.streams.config import PaginationConfig from synapse.events.utils import serialize_event from synapse.events.validator import EventValidator from synapse.util import unwrapFirstError +from synapse.util.async import concurrently_execute from synapse.util.caches.snapshot_cache import SnapshotCache from synapse.types import UserID, RoomStreamToken, StreamToken @@ -556,14 +557,7 @@ class MessageHandler(BaseHandler): except: logger.exception("Failed to get snapshot") - # Only do N rooms at once - n = 5 - d_list = [handle_room(e) for e in room_list] - for i in range(0, len(d_list), n): - yield defer.gatherResults( - d_list[i:i + n], - consumeErrors=True - ).addErrback(unwrapFirstError) + yield concurrently_execute(handle_room, room_list, 10) account_data_events = [] for account_data_type, content in account_data.items(): |