epub文档 Django Q Documentation Release 0.7.10

518.39 KB 67 页 0 评论
语言 格式 评分
英语
.epub
3
摘要
Django Q 是一个 native 的 Django 任务队列、调度器和 worker 应用,使用 Python multiprocessing。其功能包括多处理 worker 池、异步任务、定时和重复任务、加密和压缩数据包、结果钩子、Django Admin 集成、多集群监控等。支持 Redis、Disque、IronMQ、SQS、MongoDB 或 ORM 等多种消息代理。配置通过 settings.py 中的 Q_CLUSTER 字典进行,支持多种参数如 workers、recycle、timeout 等。安装要求添加 django_q 到 INSTALLED_APPS,并运行迁移命令。文档强调与 Django 的兼容性,支持 Django 1.7.10、1.8.5 和 1.9a1。管理界面提供成功任务、失败任务和定时任务的管理功能。
AI总结
《Django Q Documentation Release 0.7.10》文档总结: ### 概述 Django Q 是一个本地 Django 任务队列、调度和工作器应用,支持多进程 worker 池、异步任务、定时任务、加密和压缩 Packages、失败处理、数据库或缓存结果存储、结果 Hooks 和组,以及 Django Admin 集成。它兼容多种消息 Broker,如 Redis、Disque、IronMQ、SQS、MongoDB 或 ORM。 ### 主要特性 - **多进程 worker 池**:支持多 worker 处理任务。 - **异步和定时任务**:支持异步执行、定时任务和重复任务。 - **加密和压缩**:任务包加密和压缩。 - **失败处理**:任务失败时记录错误信息。 - **结果存储**:支持数据库或缓存存储结果。 - **Hooks 和组**:支持任务执行前后触发 Hooks,及任务分组。 - **Admin 集成**:通过 Django Admin 查看成功、失败和调度任务。 - **监控和 PaaS 兼容**:支持多集群监控,兼容 PaaS 部署。 ### 安装 1. 使用 pip 安装:`pip install django-q` 2. 添加 `django_q` 到 `INSTALLED_APPS` 3. 运行迁移命令:`python manage.py migrate` 4. 选择并配置消息 Broker,安装对应的客户端库。 ### 配置 在 `settings.py` 中通过 `Q_CLUSTER` 字典配置: - `name`:项目名称,用于区分不同项目(默认为 'default')。 - `workers`:worker 数量,默认为 CPU 核心数。 - `recycle`:worker 处理任务数后重启(默认 500)。 - `timeout`:任务执行超时时间(默认 60 秒)。 - `compress`:是否压缩任务包(默认 True)。 - `save_limit`:成功任务的最大保存数量(默认 250)。 - `queue_limit`:队列中任务的最大数量(默认 500)。 - `redis`:Redis Broker 配置(如 host、port、db)。 ### Broker 支持 Django Q 支持多种 Broker: - **Redis**:默认 Broker,但不支持消息回执。 - **Disque**:支持消息回执。 - **MongoDB**:支持高吞吐量。 - **ORM**:使用 Django ORM 存储任务。 ### 任务调度示例 1. **异步任务**: ```python from django_q.tasks import async async('django.core.mail.send_mail', '邮件主题', '邮件内容', '发件人', ['收件人']) ``` 2. **定时任务**: ```python from django_q.tasks import schedule from django.utils import timezone schedule('myapp.tasks.my_function', schedule_type=Schedule.ONCE, next_run=timezone.now() + timedelta(hours=1)) ``` 3. **信号触发任务**: ```python from django.db.models.signals import post_save from django.dispatch import receiver from django_q.tasks import async @receiver(post_save, sender=User) def send_welcome_email(sender, instance, created, **kwargs): if created: async('django.core.mail.send_mail', 'Welcome', '欢迎内容', 'from@example.com', [instance.email]) ``` ### Admin 集成 Django Q 在 Admin 页面提供了以下模型: - **成功任务**:显示所有成功执行的任务,支持按名称、函数或组筛选。 - **失败任务**:显示执行失败的任务,可从 Admin 重试失败任务。 - **调度任务**:显示定时任务,支持重试或删除。 ### 兼容性 - **Python**:支持 2.7 和 3.5。 - **Django**:兼容 1.7.10、1.8.5,部分支持 1.9a1。 - **依赖包**:包括 `django-picklefield`、`arrow`、`blessed` 等。 ### 总结 Django Q 是一个功能强大、灵活且易于集成的任务队列系统,适合处理异步任务、定时任务和重复任务。它支持多种 Broker,并提供了完善的 Admin 集成和监控功能,适合大规模应用场景。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 60 页请下载阅读 -
文档评分
请文明评论,理性发言.