pdf文档 Django Q Documentation Release 0.7.9

397.77 KB 50 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
文档介绍了Django Q,一个用于任务队列、调度和工作的Django原生应用,使用Python多处理。它支持多种消息代理,如Redis和MongoDB,并提供了管理界面来监控成功任务、失败任务和计划任务。Django Q支持异步任务和计划重复任务,提供配置选项如任务超时、任务压缩、结果保存限制等,以提高性能和灵活性。此外,它还提供集群监控功能,显示工作节点的运行状态和任务队列情况。
AI总结
《Django Q Documentation Release 0.7.8》概述 Django Q 是一个基于 Python 多进程的任务队列、调度器和 worker 应用,集成于 Django Framework 中,支持多种消息中间件(如 Redis、Disque、IronMQ 等)和缓存后端。以下是文档的核心内容总结: --- ### **主要功能** - **任务队列与调度**:支持异步任务、计划任务和重复任务。 - **worker池**:基于多进程的 worker 池,支持动态调整 worker 数量。 - **任务状态管理**:记录任务成功和失败状态,支持任务重试。 - **Admin 集成**:通过 Django Admin 界面管理任务和集群状态。 - **监控与日志**:提供实时监控功能,支持多集群管理。 - **多平台支持**:兼容 Python 2.7 & 3.5,Django 1.7.10 & 1.8.4。 - **扩展性**:支持多种中间件(Redis、MongoDB 等)和缓存后端。 --- ### **安装与配置** 1. **安装** - 使用 pip 安装:`pip install django-q` - 添加 `django_q` 到 `INSTALLED_APPS` - 迁移数据库:`python manage.py migrate` - 选择并配置消息中间件(如 Redis)。 2. **配置** 配置通过 `settings.py` 中的 `Q_CLUSTER` 字典实现,主要配置项包括: - `workers`:默认为 CPU 核数,支持自定义。 - `timeout`:任务超时时间,默认无超时限制。 - `compress`:压缩任务数据,减少网络传输开销。 - `save_limit`:限制成功任务的保存数量,默认 250。 - `queue_limit`:单集群内存中任务数量,默认 `workers**2`。 - `sync`:强制同步执行,适用于测试,默认 `False`。 - `catch_up`:是否重放错过的调度任务,默认 `True`。 --- ### **任务管理** - **异步任务**:通过 `async()` 函数异步执行任务,支持设置超时、结果存储、任务分组等。 示例: ```python async('math.modf', 2.5, hook='hooks.print_result', group='math') ``` - **迭代任务**:通过 `async_iter()` 异步执行可迭代对象。 示例: ```python iter = [i for i in range(100)] task_id = async_iter('math.floor', iter) result_list = result(task_id, wait=1000) # 等待结果返回 ``` - **结果存储**:支持将结果存储到数据库或缓存,默认存储成功任务,失败任务始终存储。 --- ### **Admin 界面** Django Q 在 Admin 界面提供三个主要模型: 1. **成功任务(Successful tasks)** - 显示所有成功执行的任务,支持按名称、函数或组筛选。 - 通过 `save_limit` 配置最大保存数量。 2. **失败任务(Failed tasks)** - 显示因错误未完成的任务,支持重新提交失败任务。 3. **计划任务(Scheduled tasks)** - 查看、创建、编辑或删除计划任务,支持调度重放(`catch_up` 配置)。 --- ### **集群与监控** - **集群管理** worker 集群通过 `python manage.py qcluster` 启动,支持动态调整 worker 数量。 - **监控工具** 通过 `python manage.py qmonitor` 启动监控,显示集群状态、主机信息、任务队列等。 状态包括: - **Starting**:集群启动中。 - **Idle**:空闲状态,无任务处理。 - **Working**:正在处理任务。 - **Stopping**:停止中,拒绝新任务。 - **Stopped**:所有任务完成,集群关闭。 --- ### **其他功能** - **加密与压缩**:任务数据支持加密和压缩,提高安全性和效率。 - **结果回调**:支持通过钩子(hooks)处理任务结果。 - **PaaS 兼容性**:适用于多实例部署,支持共享缓存后端。 --- ### **总结** Django Q 是一个功能强大且灵活的任务队列系统,适用于生产和测试环境。它通过简单的配置和 Admin 集成,为 Django 应用提供了高效的异步任务处理和调度能力,支持多种扩展和自定义设置,满足不同项目需求。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 43 页请下载阅读 -
文档评分
请文明评论,理性发言.