Django Q Documentation
Release 0.9.0
507.64 KB
75 页
0 下载
54 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .epub | 3 |
| 摘要 | ||
文档介绍了Django Q,一个用于Django项目的任务队列、调度器和工作者应用程序。它支持 multiprocessing worker pools、异步任务、计划和重复任务等功能。文档详细说明了安装步骤、配置选项以及与Redis、Disque、IronMQ、SQS、MongoDB或ORM等消息队列的兼容性。还涵盖了错误处理、信号、任务监控等方面的内容。 | ||
| AI总结 | ||
### Django Q 0.9.0 文档总结
#### 安装
1. 使用 pip 安装最新版本:
```bash
$ pip install Django-q
```
2. 将 `Django_q` 添加到项目 `settings.py` 的 `INSTALLED_APPS`:
```python
INSTALLED_APPS = (
# 其他应用
'django_q',
)
```
3. 运行 Django 迁移以创建数据库表:
```bash
$ python manage.py migrate
```
4. 选择消息代理(如 Redis、Disque 等),配置并安装相应的客户端库。
5. 启动 Django Q 集群以处理异步任务:
```bash
$ python manage.py qcluster
```
#### 配置
- 配置通过 `Q_CLUSTER` 字典在 `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,
'db': 0,
}
}
```
#### 功能
1. ** multiprocessing 工作池
2. 异步任务
3. 调度和重复任务
4. 加密和压缩任务
5. 成功和失败结果的数据库或缓存存储
6. 结果钩子、分组和链式任务
7. Django Admin 集成
8. 多实例 PaaS 兼容性
9. 支持的消息代理:Redis、Disque、IronMQ、SQS、MongoDB 或 ORM
10. Rollbar 和 Sentry 错误报告支持
#### 兼容性
- Python 2.7 和 3.6
- Django 1.8.18 LTS、1.11.9 和 2.0
- 依赖项:Django-picklefield、Arrow、Blessed
#### 任务管理
1. **同步任务**:使用 `async()` 创建同步任务。
2. **任务状态**:通过 `fetch(task_id)` 查看任务状态。
3. **失败处理**:失败任务会记录错误信息,可通过管理界面重新提交。
4. **调度任务**:支持定时和重复任务。
#### 错误处理
- 使用插件(如 Rollbar 和 Sentry)进行错误报告。
- 开发者可通过信号(`pre_enqueue` 和 `pre_execute`)自定义错误处理逻辑。
#### 信号
- **pre_enqueue**:任务入队前触发。
- **pre_execute**:任务执行前触发。
- 开发者可通过 Django 的信号机制订阅并自定义处理逻辑。
#### 连接池
- 优化连接使用,避免连接耗尽。
- 支持通过 Django-Redis 使用 Redis 连接池。
#### 其他
- **任务分组**:支持任务分组,便于管理和调度。
- **链式任务**:支持任务链,任务结果可作为下一个任务的输入。
- **监控**:通过 Django Admin 界面查看成功和失败任务,并支持通过管理界面删除或重试任务。
总结:Django Q 是一个功能强大的 Django 原生任务队列和调度工具,支持多种消息代理和插件扩展,适合需要异步任务处理和调度的项目。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
68 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.9.0