Django Q Documentation
Release 0.5.3
358.27 KB
38 页
0 下载
50 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
Django Q 是一个用于处理异步任务的 Django 应用程序,支持任务调度、集群管理、监控等功能。文档详细介绍了其安装、配置、任务处理流程及监控界面。主要功能包括:使用 Redis 作为中央枢纽,支持多进程任务池,提供任务调度(如一次性、周期性任务),支持任务分组、结果存储及失败处理。配置参数包括 workers(工作进程数)、recycle(任务处理数阈值)、timeout(任务超时时间)等。文档还展示了如何通过 Django 管理界面查看成功任务和失败任务,并提供了示例和使用场景。 | ||
| AI总结 | ||
# Django Q 0.5.3 文档总结
## 1. 特性
- **多进程 worker 池**:支持 multiprocessing 的 worker 池,可配置 worker 数量、超时时间、回收策略等。
- **异步任务**:支持异步任务处理。
- **计划任务和重复任务**:提供任务调度功能。
- **加密和压缩**:任务数据可加密和压缩。
- **结果存储**:成功和失败的任务结果均可存储。
- **失败处理**:任务失败后可设置钩子处理。
- **Django Admin 集成**:通过 Django 的 admin 界面查看任务状态。
- **多集群监控**:支持多集群运行,可实时监控集群状态。
## 2. 安装
- 使用 pip 安装:`pip install Django-q`
- 添加到 `INSTALLED_APPS`:`'django_q'`
- 运行 Django 迁移:`python manage.py migrate`
- 确保 Redis 服务运行。
## 3. 配置
- 配置文件路径:`settings.py`
- 示例配置:
```python
Q_CLUSTER = {
'name': 'myproject',
'workers': 8,
'recycle': 500,
'timeout': 60,
'compress': True,
'save_limit': 250,
'queue_limit': 500,
'cpu_affinity': 1,
'label': 'Django Q',
'redis': {
'host': '127.0.0.1',
'port': 6379,
}
}
```
- 配置参数说明:
- `name`:区分不同项目,默认为 `default`。
- `workers`:worker 数量,默认为 CPU 核数。
- `recycle`:worker 处理任务数上限,默认 500。
- `timeout`:任务超时时间,默认无限制。
- `compress`:是否压缩任务数据,默认 False。
- `save_limit`:成功任务保存限制,默认 250。
- `queue_limit`:队列任务数量限制,默认 500。
## 4. 集群
- **启动集群**:使用 `manage.py qcluster` 启动。
```bash
$ python manage.py qcluster
```
- **停止集群**:通过 `ctrl-c` 或信号终止。
- **多集群支持**:
- 连接同一 Redis 服务。
- 使用相同集群名称。
- 使用相同的 `SECRET_KEY`。
## 5. 监控
- **Stat 类**:获取集群状态信息。
- `cluster_id`:集群 ID。
- `status`:集群状态。
- `task_q_size`:任务队列大小。
- `done_q_size`:结果队列大小。
- **获取状态**:
```python
Stat.get(cluster_id, r=redis_client)
Stat.get_all(r=redis_client)
```
## 6. 管理页面
- **任务状态**:通过 Django admin 查看成功和失败的任务。
- **筛选功能**:按组、名称、函数等过滤。
- **操作**:查看详情或删除任务。
## 7. 其他
- **兼容性**:支持 Python 2.7 和 3.4,Django 1.7.10 和 1.8.4。
- **依赖**:
- `Django-picklefield`:存储任务参数和结果。
- `Redis-py`:Redis 客户端。
- `Arrow`:任务调度。
- `Blessed`:终端布局。
## 8. 示例
- **Procfile 配置**:
```Procfile
worker: python manage.py qcluster
```
- **日志示例**:
```bash
10:57:40 [Q] INFO Q Cluster-31781 starting.
16:44:12 [Q] INFO Q Cluster-31781 stopping.
```
## 9. 总结
Django Q 是一个功能强大的任务队列和调度工具,支持异步任务、计划任务、多集群运行和实时监控。通过简单的配置即可实现高效的任务管理,适合需要处理大量后台任务的 Django 项目。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
31 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.3.6