from celery import shared_task from celery.result import AsyncResult from .models import UncloudTask @shared_task(bind=True) def cleanup_tasks(self): print(f"Cleanup time from {self}: {self.request.id}") for task in UncloudTask.objects.all(): print(f"Pruning {task}...") if str(task.task_id) == str(self.request.id): print("Skipping myself") continue res = AsyncResult(id=str(task.task_id)) print(f"Task {task}: {res.state}") if res.ready(): print(res.get()) task.delete() res.forget()