← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 28: Перенесення важкої операції у чергу

Технологія: Python

Номер лабораторної: 28 · Рівень: middle

Тема: Фонові задачі через Celery або RQ

Повний опис / сценарій лабораторної:

Meta: розібрати концепцію фонового воркера для довгих задач, наприклад обробки email або звітів.



Krok 1. Вибрати інструмент, наприклад celery з брокером redis.

Poyasnennya: для лабораторії можна поставити redis локально.



Krok 2. Встановити потрібні пакети у віртуальному середовищі.

Komandi: cd ~/python_lab1; source .venv/bin/activate; pip install celery redis



Krok 3. Створити файл src/app/tasks28.py з описом celery застосунку.

Poyasnennya: celery app з брокером redis і простою задачею add.



Krok 4. Запустити redis сервер або використати вже працюючий.



Krok 5. Запустити celery worker з цим застосунком.

Komanda: celery -A app.tasks28 worker --loglevel=info



Krok 6. У іншому терміналі викликати задачу add через delay.

Poyasnennya: перевір лог воркера і результат.



Krok 7. Додати задачу яка симулює довгу операцію через sleep.



Krok 8. Продумати як обробляти помилки у таких задачах і де зберігати результат.



Krok 9. Занотувати ризики повʼязані з втратою задач при неправильній конфігурації брокера.



Krok 10. Mini zvit.

Zavdannya: опиши одну реальну задачу у твоїй інфраструктурі яку варто винести у фонового воркера.