Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit d42c17c

Browse files
committed
update background job
1 parent 26faaff commit d42c17c

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

synapse/storage/databases/main/devices.py

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,34 +1065,41 @@ async def _remove_deleted_devices_from_device_inbox(
10651065
The number of deleted rows
10661066
"""
10671067

1068+
last_device_id = progress.get("device_id", "")
1069+
10681070
def _remove_deleted_devices_from_device_inbox_txn(
10691071
txn: LoggingTransaction,
10701072
) -> int:
10711073

10721074
sql = """
1073-
SELECT user_id, device_id, stream_id
1075+
SELECT device_id
10741076
FROM device_inbox
10751077
WHERE device_id
10761078
NOT IN (SELECT device_id FROM devices)
1079+
AND device_id > ?
1080+
ORDER BY device_id ASC
10771081
LIMIT ?;
10781082
"""
10791083

1080-
txn.execute(sql, (batch_size,))
1081-
rows = txn.fetchall()
1084+
txn.execute(sql, (last_device_id, batch_size))
1085+
device_ids_to_delete = txn.fetchall()
10821086

1083-
for row in rows:
1084-
self.db_pool.simple_delete_txn(
1085-
txn,
1086-
"device_inbox",
1087-
{"user_id": row[0], "device_id": row[1], "stream_id": row[2]},
1088-
)
1087+
count_deleted_devices = self.db_pool.simple_delete_many_txn(
1088+
txn,
1089+
"device_inbox",
1090+
column="device_id",
1091+
values=device_ids_to_delete,
1092+
keyvalues={},
1093+
)
10891094

1090-
if rows:
1095+
if device_ids_to_delete:
10911096
self.db_pool.updates._background_update_progress_txn(
1092-
txn, "remove_deleted_devices_from_device_inbox", row
1097+
txn,
1098+
"remove_deleted_devices_from_device_inbox",
1099+
{"device_id": device_ids_to_delete[-1]},
10931100
)
10941101

1095-
return len(rows)
1102+
return count_deleted_devices
10961103

10971104
number_deleted = await self.db_pool.runInteraction(
10981105
"_remove_deleted_devices_from_device_inbox",

0 commit comments

Comments
 (0)