Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 23, 2011 14:13:35

nuklea
От:
Зарегистрирован: 2009-12-05
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с celery

Собственно, задача такая:

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. Документацию читал, ничего не понял. Спасите-помогите, товарищи.



Офлайн

#2 Июнь 23, 2011 16:07:41

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Помогите разобраться с celery

job.join() ?



Офлайн

#3 Июль 1, 2011 07:45:00

nuklea
От:
Зарегистрирован: 2009-12-05
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с celery

Да, join спас, спасибо :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version