#!/usr/bin/env python3 # [DEF:backend.delete_running_tasks:Module] # @PURPOSE: Script to delete tasks with RUNNING status from the database. # @LAYER: Utility # @SEMANTICS: maintenance, database, cleanup from sqlalchemy.orm import Session from src.core.database import TasksSessionLocal from src.models.task import TaskRecord # [DEF:delete_running_tasks: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. 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() # [/DEF:delete_running_tasks:Function] if __name__ == "__main__": delete_running_tasks() # [/DEF:backend.delete_running_tasks:Module]