epub文档 Django Q Documentation Release 0.8.0

506.27 KB 73 页 0 评论
语言 格式 评分
英语
.epub
3
摘要
The document describes Django Q, a native Django task queue, scheduler, and worker application that utilizes Python multiprocessing. It offers features such as asynchronous tasks, scheduled and repeated tasks, and integration with various brokers like Redis and MongoDB. Django Q is compatible with Django versions 1.8.18 LTS, 1.10.7, and 1.11, and supports Python 2.7 and 3.6. The configuration is handled through the Q_CLUSTER dictionary in settings.py, allowing customization of worker settings, task timeouts, and broker connections. Additionally, Django Q provides tools for task monitoring, result storage, and failure handling.
AI总结
# 《Django Q Documentation Release 0.8.0》总结 ## 概述 Django Q 是一个基于 Python 多进程的 Django 任务队列、调度和 worker 应用,支持异步任务处理、定时任务和分布式集群管理。 ## 核心功能 - **多进程 worker 池**:利用多个 worker 进行任务处理,支持并发执行。 - **异步任务**:支持将任务异步执行,减少等待时间。 - **定时和重复任务**:支持根据时间或间隔安排任务。 - **加密和压缩**:任务数据加密传输,确保安全性。 - **任务结果存储**:支持将任务结果存储到数据库或缓存中。 - **钩子和链式调度**:允许在任务执行前后触发钩子,支持任务链式调用。 - **集成与兼容性**:与 Django Admin 集成,支持 PaaS 多实例部署和多集群监控,兼容多种消息队列(如 Redis、SQS 等)。 - **失败处理与重试**:支持任务失败重试和结果回调。 ## 兼容性 - **Python**:支持 2.7 和 3.6 版本。 - **Django**:兼容 1.8.18 LTS、1.10.7 和 1.11 版本,旧版本(如 1.7 和 1.9)可能兼容但不再测试。 ## 配置 通过 `Q_CLUSTER` 字典在 `settings.py` 中配置,关键参数包括: - `name`:项目名称,用于区分不同项目。 - `workers`:默认为主机 CPU 核数,可自定义。 - `recycle`:worker 处理任务后的重启间隔。 - `timeout`:任务超时时间,默认为 60 秒。 - `compress`:是否压缩任务数据。 - `save_limit`:任务结果存储数量限制。 - `queue_limit`:队列任务数量限制。 - `label`:任务标签,用于标识。 - **消息队列配置**:支持 Redis、Disque、IronMQ、SQS 等,需配置相应的主机、端口和数据库。 ## 安装步骤 1. 使用 pip 安装:`pip install django-q`。 2. 添加 `django_q` 到 `INSTALLED_APPS`。 3. 运行迁移命令:`python manage.py migrate`。 4. config 消息队列并安装对应的客户端库。 5. 启动集群:`python manage.py qcluster`。 ## 依赖包 - **Django-picklefield**:用于存储任务参数和结果。 - **Arrow**:用于时间计算和调度。 - **Blessed**:提供终端界面布局。 ## 任务管理 - **异步任务**:使用 `async()` 函数创建任务,支持设置 `hook`、`group`、`timeout` 等参数。 - **结果获取**:通过 `fetch()` 方法获取任务结果,支持检查任务状态和结果。 - **调度任务**:支持按分钟、小时、天、周、月等单位定时执行。 - **任务组**:支持将任务分组,统一管理和查询。 - **同步任务**:设置 `sync=True` 可以立即执行任务,绕过消息队列,适合调试。 ## 信号 - **pre_enqueue**:任务入队前触发。 - **pre_execute**:任务执行前触发。 ## 监控 支持通过 Sentinel 监控集群状态,提供任务队列大小、工作进度等信息。 ## 优化 - **同步任务**:适合调试,直接注入 worker。 - **连接池**:优化 broker 连接,提高效率。 Django Q 是一个强大且灵活的任务队列系统,适合处理异步任务和定时任务,兼容多种消息队列,提供丰富的配置和监控功能。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 66 页请下载阅读 -
文档评分
请文明评论,理性发言.