Django Q Documentation
Release 0.3.6
235.40 KB
30 页
0 下载
177 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
Django Q 是一个基于 Django 的任务队列和工作流程应用,使用 Python 的 multiprocessing 模块来管理任务处理。文档详细介绍了其功能,包括任务队列的安装、任务调度、集群管理、监控界面等。主要功能有:支持多进程 worker 池、异步任务、 scheduled 和 repeated tasks、加密和压缩包、失败和成功数据库、结果钩子、Django Admin 集成、PaaS 兼容性、多集群监控以及 Redis 支持。文档还提供了详细的安装步骤、任务调度频率配置、集群启动与停止方法,以及如何通过 Django 的 admin 界面管理成功和失败的任务。 | ||
| AI总结 | ||
### Django Q 0.3.6 文档总结
#### 1. 简介
Django Q 是一个基于 Django 的任务队列和工作者应用,使用 Python 的 multiprocessing 模块。其主要功能包括:
- **异步任务**:支持异步任务处理。
- **计划任务**:支持 scheduled 和 repeated 任务。
- **加密和压缩**:任务数据经过加密和压缩。
- **结果数据库**:记录任务的失败和成功结果。
- **结果钩子**:任务完成后触发钩子函数。
- **Django Admin 集成**:通过 Django 的 admin 界面管理任务。
- **多实例支持**:支持 PaaS 环境下的多实例部署。
- **多集群监控**:支持多集群的监控和管理。
- **Redis 支持**:使用 Redis 作为任务队列的后端存储。
Django Q 已经测试兼容 Python 2.7 & 3.4 以及 Django 1.7.9 & 1.8.3。
---
#### 2. 安装
安装 Django Q 的步骤如下:
1. 使用 pip 安装最新版本:
```bash
$ pip install Django-q
```
2. 将 `django_q` 添加到项目的 `INSTALLED_APPS` 中:
```python
INSTALLED_APPS = (
# 其他应用
'django_q',
)
```
3. 运行 Django 迁移以创建数据库表:
```bash
$ python manage.py migrate
```
4. 确保 Redis 服务器已运行,并根据需要配置重复任务的保留策略(正数保留结果,负数自动删除)。
---
#### 3. 任务调度
Django Q 支持多种任务调度频率:
- **HOURLY**:每小时运行一次,从第一次运行时间开始。
- **DAILY**:每天运行一次,从第一次运行的日期和时间开始。
- **WEEKLY**:每周运行一次,从第一次运行的日期和时间开始。
- **MONTHLY**:每月运行一次,从上个月的最后运行时间开始。
- **QUARTERLY**:每季度运行一次(每 3 个月)。
- **YEARLY**:每年运行一次。
**注意事项**:
- 月份任务可能会因月份天数不同而调整(例如从 31 日调整到下个月的最后一天)。
- 年份任务若设置为闰年的 2 月 29 日,则会在非闰年运行在 2 月 28 日。
---
#### 4. 集群管理
Django Q 使用 `multiprocessing` 模块管理一个工作者池,通过以下命令启动集群:
```bash
$ python manage.py qcluster
```
**示例输出**:
```
10:57:40 [Q] INFO Q Cluster-31781 starting.
10:57:40 [Q] INFO Process-1:1 ready for work at 31784
...
10:57:40 [Q] INFO Q Cluster-31781 running.
```
**停止集群**:
- 使用 `ctrl-c` 或信号 `SIGTERM` 和 `SIGKILL` 停止集群。
- 停止时会依次关闭工作者进程:
```
16:44:12 [Q] INFO Q Cluster-31781 stopping.
16:44:13 [Q] INFO Process-1:1 stopped doing work
...
16:44:15 [Q] INFO Q Cluster-31781 has stopped.
```
**多集群配置**:
- 多集群需要满足以下条件:
- 使用相同的 Redis 服务器。
- 使用相同的集群名称。
- 使用相同的 `SECRET_KEY`。
---
#### 5. 监控
Django Q 提供了一个 `Stat` 类用于监控集群状态,支持以下方法和属性:
- `get(cluster_id, r=redis_client)`:获取指定集群的统计信息。
- `get_all(r=redis_client)`:获取所有活跃集群的统计信息。
- `empty_queues()`:检查任务队列和结果队列是否为空。
- `done_q_size`:获取结果队列中的任务数量。
- `workers`:获取当前集群中的工作者进程 ID 列表。
---
#### 6. Django Admin 界面
Django Q 的 admin 界面默认使用 Django 的模型 admin,包含以下三个模型:
1. **成功任务**:展示所有成功执行的任务,支持查看详情或删除。
2. **失败任务**:展示所有失败的任务,支持重新提交失败任务。
3. **计划任务**:管理计划任务的创建、编辑和删除。
---
#### 7. 其他注意事项
- **性能提示**:不建议在同一环境中运行多个集群实例,因为这不会提高性能。
- **进程管理工具**:虽然可以使用 Supervisor 或 Circus 管理集群,但集群内部已集成健康检查和进程管理功能。
---
#### 8. 索引
文档末尾列出了 Django Q 模块和类的相关术语和方法索引,包括任务、调度、集群等核心功能的详细说明。
---
### 总结
Django Q 是一个功能强大的 Django 任务队列工具,支持异步任务、计划任务、多集群监控和 Redis 集成。通过简洁的安装步骤和直观的 admin 界面,用户可以轻松管理和监控任务的执行状态。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
23 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.3.6