Найти - Пользователи
Полная версия: Помогите разобраться с celery
Начало » Python для экспертов » Помогите разобраться с celery
1
nuklea
Собственно, задача такая:

1. Получаем список изображений из бд
2. Загружаем все изображения (параллельно)
3. Куда-то возвращаем список загруженных изображений и проводим операции с ними

У меня получился такой код:

@commit_on_success
@task(ignore_result=True)
def fetch_url(instance):
"""Получает содержимое"""

try:
page = urlopen(instance.photo_big, timeout=4)
except URLError:
pass

filename = md5(instance.photo_big).hexdigest()
image = ContentFile(page.read())
instance.localpath.save(filename, image)
#instance.save()

@task
def form_poster(poster):
"""Склеивает изображения"""
print('making poster!!! %s' % poster)

@task
def make_poster(poster):
"""Формирует постер"""
try:
photos = PosterPhoto.objects.filter(poster=poster, localpath='')
job = TaskSet(fetch_url.subtask(args=(photo,)) for photo in list(photos))
job.apply_async()
except ObjectDoesNotExist:
print('no photos exists for %s' % poster)
Но я совершенно не понимаю, как мне выполнить какой-то код после того, как выполнится TaskSet. Документацию читал, ничего не понял. Спасите-помогите, товарищи.
Ed
job.join() ?
nuklea
Да, join спас, спасибо :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB