devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻

Celery and django. Как сделать задачи «синхронными»?

Имеется сайт на джанге, который должен парсить прайс, сделал это на celery, создал два задания, одно на парсинг собственно прайса(относительно быстрое) и второе на скачивание картинок(долгое, т.к. картинки в большом архиве). Можно ли теперь сделать без особых костылей так, чтобы задачи одного типа выполнялись по очереди, т.е. если загрузили 2 прайса, он сначала спарсил первый, а потом второй?
Запускаю задачу из метода save модели, хранящей файл tasks.parseXml.delay(path_to_file), может не самый лучший способ, но работает :)
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 2
@d1skort
junior
Комментировать
SerhiyRomanov
@SerhiyRomanov
Программист и WEB-разработчик
Можно ли теперь сделать без особых костылей так, чтобы задачи одного типа выполнялись по очереди, т.е. если загрузили 2 прайса, он сначала спарсил первый, а потом второй?


Помещайте заданий в одну и ту же очередь

@celery_app.task(
queue="price_queue"
)
def do_parsing():
...


А сам worker запускайте так:
celery -A celery_app worker -Q price_queue -c 1

Только какой в этом смысл...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы