This commit is contained in:
2026-02-16 16:17:17 -05:00
parent 3848be32e8
commit d600dde97f
15 changed files with 700 additions and 38 deletions

View File

@@ -210,11 +210,18 @@ def delete_user_data(user: User) -> bool:
pass
return False
def process_deletion_queue():
def process_deletion_queue(force=False):
"""
Process the deletion queue: find users due for deletion and delete them.
Args:
force (bool): If True, delete all marked users immediately without checking threshold.
If False, only delete users past the threshold time.
"""
logger.info("Starting deletion scheduler run")
if force:
logger.info("Starting FORCED deletion scheduler run (bypassing time threshold)")
else:
logger.info("Starting deletion scheduler run")
processed = 0
deleted = 0
@@ -235,8 +242,8 @@ def process_deletion_queue():
user = User.from_dict(user_dict)
processed += 1
# Check if user is due for deletion
if not is_user_due_for_deletion(user):
# Check if user is due for deletion (skip check if force=True)
if not force and not is_user_due_for_deletion(user):
continue
# Check retry limit
@@ -346,10 +353,11 @@ def stop_deletion_scheduler():
def trigger_deletion_manually():
"""
Manually trigger the deletion process (for admin use).
Deletes all marked users immediately without waiting for threshold.
Returns stats about the run.
"""
logger.info("Manual deletion trigger requested")
process_deletion_queue()
logger.info("Manual deletion trigger requested - forcing immediate deletion")
process_deletion_queue(force=True)
# Return stats (simplified version)
Query_ = Query()