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)