mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-04 15:28:50 -04:00
Federation Sender & Appservice Pusher Stream Optimisations (#13251)
* Replace `get_new_events_for_appservice` with `get_all_new_events_stream` The functions were near identical and this brings the AS worker closer to the way federation senders work which can allow for multiple workers to handle AS traffic. * Pull received TS alongside events when processing the stream This avoids an extra query -per event- when both federation sender and appservice pusher process events.
This commit is contained in:
parent
fe15a865a5
commit
21eeacc995
7 changed files with 62 additions and 89 deletions
|
@ -50,7 +50,7 @@ class AppServiceHandlerTestCase(unittest.TestCase):
|
|||
self.mock_scheduler = Mock()
|
||||
hs = Mock()
|
||||
hs.get_datastores.return_value = Mock(main=self.mock_store)
|
||||
self.mock_store.get_received_ts.return_value = make_awaitable(0)
|
||||
self.mock_store.get_appservice_last_pos.return_value = make_awaitable(None)
|
||||
self.mock_store.set_appservice_last_pos.return_value = make_awaitable(None)
|
||||
self.mock_store.set_appservice_stream_type_pos.return_value = make_awaitable(
|
||||
None
|
||||
|
@ -76,9 +76,9 @@ class AppServiceHandlerTestCase(unittest.TestCase):
|
|||
event = Mock(
|
||||
sender="@someone:anywhere", type="m.room.message", room_id="!foo:bar"
|
||||
)
|
||||
self.mock_store.get_new_events_for_appservice.side_effect = [
|
||||
make_awaitable((0, [])),
|
||||
make_awaitable((1, [event])),
|
||||
self.mock_store.get_all_new_events_stream.side_effect = [
|
||||
make_awaitable((0, [], {})),
|
||||
make_awaitable((1, [event], {event.event_id: 0})),
|
||||
]
|
||||
self.handler.notify_interested_services(RoomStreamToken(None, 1))
|
||||
|
||||
|
@ -95,8 +95,8 @@ class AppServiceHandlerTestCase(unittest.TestCase):
|
|||
|
||||
event = Mock(sender=user_id, type="m.room.message", room_id="!foo:bar")
|
||||
self.mock_as_api.query_user.return_value = make_awaitable(True)
|
||||
self.mock_store.get_new_events_for_appservice.side_effect = [
|
||||
make_awaitable((0, [event])),
|
||||
self.mock_store.get_all_new_events_stream.side_effect = [
|
||||
make_awaitable((0, [event], {event.event_id: 0})),
|
||||
]
|
||||
|
||||
self.handler.notify_interested_services(RoomStreamToken(None, 0))
|
||||
|
@ -112,8 +112,8 @@ class AppServiceHandlerTestCase(unittest.TestCase):
|
|||
|
||||
event = Mock(sender=user_id, type="m.room.message", room_id="!foo:bar")
|
||||
self.mock_as_api.query_user.return_value = make_awaitable(True)
|
||||
self.mock_store.get_new_events_for_appservice.side_effect = [
|
||||
make_awaitable((0, [event])),
|
||||
self.mock_store.get_all_new_events_stream.side_effect = [
|
||||
make_awaitable((0, [event], {event.event_id: 0})),
|
||||
]
|
||||
|
||||
self.handler.notify_interested_services(RoomStreamToken(None, 0))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue