File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -97,8 +97,10 @@ async def poll_one(self, server_id):
9797 server = (
9898 await session .execute (model .Server .select (id = server_id ))
9999 ).scalar_one ()
100- meetings = await server .awaitable_attrs .meetings
101- meetings = {meeting .internal_id : meeting for meeting in meetings }
100+ meetings : dict [str , model .Meeting ] = {
101+ meeting .internal_id : meeting
102+ for meeting in await server .awaitable_attrs .meetings
103+ }
102104
103105 if not server .enabled :
104106 if not meetings :
@@ -153,20 +155,24 @@ async def poll_one(self, server_id):
153155
154156 async with self .db .session () as session :
155157 # Forget meetings not found on server
156- forget_ids = set (
157- meeting .internal_id
158+ forget_ids = list (
159+ meeting .id
158160 for meeting in meetings .values ()
159161 if meeting .internal_id not in running_ids
160162 )
161163 if forget_ids :
162164 LOG .debug (
163- f"{ len (forget_ids )} meetings not found on server, ending them all"
165+ f"{ len (forget_ids )} meetings not found on server, forgetting them all"
164166 )
165- await session .execute (
166- model .delete (model .Meeting ).where (
167- model .Meeting .internal_id .in_ (forget_ids )
167+ chunk_size = 100
168+ for offset in range (0 , len (forget_ids ), chunk_size ):
169+ await session .execute (
170+ model .delete (model .Meeting ).where (
171+ model .Meeting .id .in_ (
172+ forget_ids [offset : offset + chunk_size ]
173+ )
174+ )
168175 )
169- )
170176
171177 # Re-fetch server from DB so we can update load and state values
172178 server = (
You can’t perform that action at this time.
0 commit comments