Как вызвать задачу с задержкой в zappa django
В celery я могу вызвать задачу с помощью <func_name>.delay(). Как я могу сделать это в zappa? У меня есть задача:
@task()
def task_name():
    pass
TL;DR;
Они предназначены для разных целей. Celery - это распределенная система очередей задач. Поэтому задания можно откладывать. Они отправляются в очередь, чтобы быть обработанными позже.
С другой стороны, Hand Zappa позволяет развернуть бессерверное приложение на AWS Lambda.
Если вы хотите отправить запрос в Zappa, вы можете сделать это как обычный запрос конечной точки, но это не система очередей.
Вступление
Из документации Celery:
Celery - распределенная очередь задач Celery - это простая, гибкая и надежная распределенная система для обработки огромного количества сообщений, предоставляющая операторам инструменты, необходимые для обслуживания такой системы.
Из документации Заппы:
Zappa позволяет очень легко создавать и развертывать бессерверные, управляемые событиями Python-приложения (включая, но не ограничиваясь, веб-приложения WSGI) на AWS Lambda + API Gateway. Думайте об этом как о "бессерверном" веб-хостинге для ваших Python-приложений. Это означает бесконечное масштабирование, нулевое время простоя, нулевое обслуживание - и за долю стоимости ваших текущих развертываний!
Python Celery и Zappa служат разным целям в контексте веб-разработки и управления задачами. Вот описание их ключевых различий:
1. Цель и пример использования
- Сельдерей: - Celery - это распределенная система очередей задач. Она используется для выполнения асинхронных и фоновых задач (например, отправка электронной почты, обработка изображений и т. д.).
- Она позволяет выполнять длительные задачи в фоновом режиме, не блокируя работу основного приложения.
- Celery часто используется с такими фреймворками, как Django или Flask, для разгрузки задач на рабочие станции, работающие отдельно от основного приложения.
 
- Zappa: - Zappa - это фреймворк, позволяющий разворачивать Python WSGI-приложения (такие как Django и Flask) на AWS Lambda. .
- Он превращает ваше Python веб-приложение в бессерверную архитектуру, обрабатывая развертывание в AWS Lambda и API Gateway.
- Основное внимание Zappa уделяет возможности масштабирования Python-приложений без управления серверами.
 
2. Архитектура
- Сельдерей: - Поддерживает распределенную архитектуру, в которой несколько рабочих процессов выполняют задания из очереди.
- Celery требует брокера сообщений (например, RabbitMQ, Redis) для хранения задач и связи между главным приложением и рабочими узлами.
- Архитектура ориентирована на обеспечение асинхронной обработки задач с повторами и возможностями планирования.
 
- Zappa: - Zappa упаковывает ваше веб-приложение на Python и развертывает его на AWS Lambda, сервисе бессерверных вычислений.
- Постоянный сервер не требуется; приложение запускается только при возникновении событий, таких как HTTP-запросы (через API Gateway).
- Zappa абстрагируется от управления серверами, автоматического масштабирования и балансировки нагрузки, опираясь на бессерверную инфраструктуру AWS.
 
3. Обработка заданий
4. Масштабируемость
- Сельдерей: - Справляется с длительно выполняющимися и асинхронными задачами.
- Позволяет распределять задачи между несколькими рабочими и планировать их последующее выполнение.
 
- 
 Zappa- :
- В первую очередь обрабатывает веб-запросы и событийно-управляемую логику бессерверным способом.
 
5. Развертывание и хостинг
- Сельдерей: - Рабочие устройства Celery должны быть развернуты и управляться отдельно от основного веб-приложения.
- Требуется настройка и поддержка брокера сообщений и бэкенда для хранения результатов.
 
- Zappa: - Zappa обрабатывает развертывание на AWS Lambda, что позволяет перейти к бессерверной работе, не заботясь об инфраструктуре.
- Вам не нужно управлять серверами, рабочими или брокерами; AWS берет на себя заботу о масштабировании, балансировке нагрузки и других инфраструктурных проблемах.
 
6. Интеграция с AWS
- Сельдерей: - Celery не привязан к какому-либо конкретному облачному провайдеру. Он может работать на различных платформах, пока доступны необходимые компоненты (рабочие, брокер сообщений).
- Вы можете настроить Celery на использование AWS SQS в качестве брокера сообщений, но он не интегрирован с сервисами AWS.
 
- Zappa: - Zappa глубоко интегрирована с сервисами AWS, в частности с AWS Lambda и API Gateway.
- Она упрощает развертывание Python-приложений на бессерверной инфраструктуре AWS, используя такие нативные сервисы, как S3, DynamoDB и CloudWatch.
 
7. Общие случаи использования
- Сельдерей: - Разгрузка длительных задач, таких как отправка электронной почты или обработка файлов.
- Обработка запланированных или периодических задач (например, ежедневных отчетов, заданий cron).
- Распределенная обработка задач на нескольких серверах.
 
- Zappa: - Развертывание веб-приложений Python на AWS Lambda для их запуска без управления серверами.
- Создание бессерверных API, микросервисов и событийно-ориентированных приложений.
- Масштабирование Python-приложений без необходимости управления инфраструктурой.
 
Summary:
- Celery фокусируется на управлении и асинхронном выполнении фоновых задач, требуя брокера и рабочих для обработки распределенных задач.
- Zappa фокусируется на развертывании веб-приложений на Python в AWS Lambda, обеспечивая бессерверную архитектуру с автоматическим масштабированием и управлением инфраструктурой со стороны AWS.