Полное руководство по Celery и Flask
Язык: Английский
Это курс не для новичков. Он предназначен для продвинутых новичков - тех, у кого не менее шести месяцев опыта веб-разработки. Перед тем, как начать, вы должны немного ознакомиться со следующими темами. Обратитесь к этим ресурсам для получения дополнительной информации:
Docker and Docker Compose - , , and
Flask -
Что ты узнаешь?
Часть 1
В этой первой части вы узнаете, как настроить Celery для работы с Flask и Docker для асинхронной обработки задач в фоновом режиме. Затем мы рассмотрим, как повторить неудачные задачи, отладить задачи и убедиться, что задачи правильно работают с транзакциями базы данных SQLAlchemy. Наконец, мы добавим поддержку WebSocket во Flask с помощью Flask-SocketIO.
Часть 2
Во второй части мы погрузимся в тестирование с помощью pytest. Мы также рассмотрим рабочий процесс разработки через тестирование (TDD). Затем вы развернете приложение в DigitalOcean и узнаете, как правильно отслеживать задачи Celery с помощью Flower, Container Advisor и Prometheus. Наконец, мы рассмотрим некоторые лучшие практики и советы по настройке производительности Celery.
Part 1
Core
- Explain why you may want to use a task queue like Celery
- Describe the basic producer/consumer model and how it relates to Celery
- Set up Celery with Flask
- Create an application factory pattern for initializing a Flask app
- Configure Celery to work with the Flask application factory pattern
- Utilize Flask-SQLAlchemy to interact with a relational database
- Manage changes to the database with Flask-Migrate
- Use Docker Compose to create and manage Flask, Postgres, Redis, and Celery
- Add auto-reload to restart Celery workers on code changes in development
- Debug a Celery task with rdb
- Process FLask form submissions with a Celery worker
- Handle complicated logic triggered by a webhook notification with a Celery worker
- Use Flask-SocketIO and Eventlet to add WebSocket support to a Flask application
- Send real-time messages to a web browser from a Celery worker with Flask-SocketIO
- Schedule a Celery task to run periodically with Celery Beat
- Retry a failed Celery task with the retry method
- Describe what a database transaction is and how to use it in SQLAlchemy
- Prevent a task from executing before the database commits a transaction
- Explain how the Celery logger works
- Set up the Celery logger inside a Celery Task
- Customize the behavior of Celery's Logger
- Send Celery logs to Papertrail
- Test Celery tasks in Celery's eager mode with pytest
- Generate test data with factory_boy and pytest-factoryboy
- Practice Test-Driven Development with pytest as you test a Celery task
- Create and use a custom Celery task decorator
- Use pytest to test a custom task decorator
- Deploy Flask, Celery, and RabbitMQ to DigitalOcean
- Monitor a Celery app with Flower
- Configure Container Advisor and Prometheus for monitoring
- Use Kombu to produce and consume messages through a message broker
Core
- Python
- Flask
- Celery
- Flask-SocketIO
- Flask-WTF
- Flower
- Docker
- Postgres
- Redis
- RabbitMQ
- Gunicorn
- Eventlet
- pytest
- factory_boy
- Coverage.py
- Container Advisor
- Prometheus
- Papertrail
- DigitalOcean
https://testdriven.io/courses/flask-celery/