Files
ss-tools/backend/delete_running_tasks.py
2026-05-19 18:36:15 +03:00

51 lines
1.8 KiB
Python

#!/usr/bin/env python3
# #region DeleteRunningTasksUtil [C:3] [TYPE Module]
# @PURPOSE Script to delete tasks with RUNNING status from the database.
# @LAYER Infrastructure
# @SEMANTICS maintenance, database, cleanup
# @RELATION DEPENDS_ON ->[TaskRecord]
# @RELATION DEPENDS_ON ->[TaskRecord]
from sqlalchemy.orm import Session
from src.core.database import TasksSessionLocal
from src.models.task import TaskRecord
# #region delete_running_tasks [C:4] [TYPE Function]
# @PURPOSE Delete all tasks with RUNNING status from the database.
# @PRE Database is accessible and TaskRecord model is defined.
# @POST All tasks with status 'RUNNING' are removed from the database.
# @SIDE_EFFECT Modifies DB: deletes RUNNING tasks. Prints to stdout.
def delete_running_tasks():
"""Delete all tasks with RUNNING status from the database."""
session: Session = TasksSessionLocal()
try:
# Find all task records with RUNNING status
running_tasks = session.query(TaskRecord).filter(TaskRecord.status == "RUNNING").all()
if not running_tasks:
print("No RUNNING tasks found.")
return
print(f"Found {len(running_tasks)} RUNNING tasks:")
for task in running_tasks:
print(f"- Task ID: {task.id}, Type: {task.type}")
# Delete the found tasks
session.query(TaskRecord).filter(TaskRecord.status == "RUNNING").delete(synchronize_session=False)
session.commit()
print(f"Successfully deleted {len(running_tasks)} RUNNING tasks.")
except Exception as e:
session.rollback()
print(f"Error deleting tasks: {e}")
finally:
session.close()
# #endregion delete_running_tasks
# [/DEF:delete_running_tasks:Function]
if __name__ == "__main__":
delete_running_tasks()
# #endregion DeleteRunningTasksUtil