forked from uncloud/uncloud
22 lines
595 B
Python
22 lines
595 B
Python
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()
|