В моем файле tasks.py
зарегистрировано задание Celery. Когда кто-то POST в / run / pk, я запускаю задачу с заданными параметрами. Эта задача также выполняет другие задачи (обычные функции Python), и я хотел бы обновлять свою страницу (HttpResponse, возвращенный в / run / pk) всякий раз, когда подзадача заканчивает свою работу.
Вот моя задача:
from celery.decorators import task
@task
def run(project, branch=None):
if branch is None:
branch = project.branch
print 'Creating the virtualenv'
create_virtualenv(project, branch)
print 'Virtualenv created' ##### Here I want to send a signal or something to update my page
runner = runner(project, branch)
print 'Using {0}'.format(runner)
try:
result, output = runner.run()
except Exception as e:
print 'Error: {0}'.format(e)
return False
print 'Finished'
run = Run(project=project, branch=branch,
output=output, **result._asdict())
run.save()
return True