Задать вопрос
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻

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

Имеется сайт на джанге, который должен парсить прайс, сделал это на celery, создал два задания, одно на парсинг собственно прайса(относительно быстрое) и второе на скачивание картинок(долгое, т.к. картинки в большом архиве). Можно ли теперь сделать без особых костылей так, чтобы задачи одного типа выполнялись по очереди, т.е. если загрузили 2 прайса, он сначала спарсил первый, а потом второй?
Запускаю задачу из метода save модели, хранящей файл tasks.parseXml.delay(path_to_file), может не самый лучший способ, но работает :)
  • Вопрос задан
  • 353 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Разработка на Python
    1 год
    Далее
Пригласить эксперта
Ответы на вопрос 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

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

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

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