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 页请下载阅读 -
文档评分