mumui/deployment/tasks.py

33 lines
771 B
Python

import time
import random
from uuid import UUID
from celery import shared_task
from django_eventstream import send_event
from deployment.models import Deployment, Type, Status
@shared_task
def deploy(deployment_id: UUID):
deploy = Deployment.objects.get(id=deployment_id)
deploy.status = Status.RUNNING.name
deploy.save()
match deploy.type:
case Type.SLIM.name:
time.sleep(10)
case Type.MEDIUM.name:
time.sleep(60)
case Type.LARGE.name:
time.sleep(120)
deploy.status = (
Status.FAILED.name if random.randint(0, 10) % 2 != 0 else Status.SUCCESS.name
)
deploy.save()
send_event("test", "message", {"id": deploy.id, "status": deploy.status})
print("event sent")