Merge pull request #35695 from overleaf/copilot/close-graceful-shutdown-issue-35694

Handle graceful shutdown in project and user deletion batch expiry

GitOrigin-RevId: 43182850ad8e55b480ea0073c393222366d7e00a
This commit is contained in:
Brian Gough
2026-09-17 11:38:25 +00:00
committed by Copybot
parent 793e9e6796
commit a46d987a51
4 changed files with 158 additions and 0 deletions
@@ -120,8 +120,17 @@ async function expireDeletedProjectsAfterDuration() {
'expiring batch of deleted projects'
)
try {
let processedCount = 0
for (const projectId of projectIds) {
await expireDeletedProject(projectId)
processedCount++
if (Settings.shuttingDown) {
logger.warn(
{ projectCount: projectIds.length, processedCount },
'graceful shutdown in progress, stopping batch of deleted projects early'
)
return
}
}
logger.info(
{ projectCount: projectIds.length },
@@ -139,6 +139,13 @@ async function expireDeletedUsersAfterDuration() {
await expireDeletedUser(deletedUserId)
logger.info({ deletedUserId }, 'removing deleted user audit log entries')
await UserAuditLogEntry.deleteMany({ userId: deletedUserId }).exec()
if (Settings.shuttingDown) {
logger.warn(
{ userCount: deletedUsers.length, processedCount: i + 1 },
'graceful shutdown in progress, stopping batch of deleted users early'
)
return
}
}
logger.info(
{ deletedUsers: deletedUsers.length },