import time from celery import shared_task from judge.utils.celery import Progress __all__ = ("success", "failure", "progress") @shared_task def success(): pass @shared_task def failure(): raise RuntimeError("This task always fails.") @shared_task(bind=True) def progress(self, seconds=10): with Progress(self, seconds) as p: for i in range(seconds): time.sleep(1) p.did(1)