Синхронная очередь задач Celery
Нужно создать несколько задач относящихся к одной группе, например она называется "Дом".
Но нужно чтобы назначенные задачи, например "мытьё пола", "починка мебели" и "замена лампочки" выполнялись только по очереди. Нельзя чтобы они выполнялись одновременно.
Предположим пользователь выбирает:
1. Помыть пол в гостинной.
2. Заменить лампочку в ванной
3. Помыть пол на кухне
4. Починить шкаф в коридоре
5. Помыть пол в коридоре
И нужно, чтобы эти задачи последовательно. Может даже не в порядке нумерации, но главное не параллельно. Celery уже работает в несколько воркеров, поэтому запускать его в один не вариант.
Используется связка django, celery, redis.
Ответы (1 шт):
Возможно стоит попробовать использовать цепочки(Chains), подробнее здесь:
https://docs.celeryproject.org/en/latest/userguide/tasks.html#avoid-launching-synchronous-subtasks
https://stackoverflow.com/questions/49553620/does-a-celery-chain-execute-tasks-in-a-specific-order
https://stackoverflow.com/questions/3901101/pythoncelery-chaining-jobs