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))
        if res.ready():
            print(res.get())
            task.delete()