Django Q Documentation
Release 0.6.4
376.79 KB
42 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
Django Q 是一个本地 Django 任务队列、调度器和工作应用程序,使用 Python 多处理。它支持多个消息代理,如 Redis、Disque、IronMQ 和 SQS,提供了丰富的功能,包括异步任务、定时和重复任务、加密和压缩、故障和成功数据库、结果钩子和组、Django Admin 集成、多平台兼容以及监控。Django Q 支持 Python 2.7 和 3.4,Django 1.7.10 和 1.8.4。文档详细介绍了安装、配置、架构、监控以及使用的各个方面。 | ||
AI总结 | ||
《Django Q Documentation Release 0.6.4》总结
本文档主要介绍了Django Q,这是一款支持任务队列、调度和多进程worker功能的Django应用。以下是核心内容的总结:
---
### **1. 功能概述**
- **核心功能**:
- 提供基于Python多进程的worker池。
- 支持异步任务、定时任务和重复任务。
- 任务执行失败时支持重试机制。
- 提供任务加密和压缩功能。
- 具备任务结果存储、钩子函数和任务分组功能。
- 集成Django Admin,支持多种消息代理(如Redis、Disque、IronMQ、SQS)。
- 支持PaaS环境下的多实例部署。
- 提供多集群监控功能。
-兼容Python 2.7和3.4,测试通过Django 1.7.10和1.8.4版本。
---
### **2. 安装与配置**
- **安装步骤**:
1. 使用pip安装最新版本:`$ pip install django-q`。
2. 在项目的`settings.py`中添加`django_q`到`INSTALLED_APPS`。
3. 运行数据库迁移命令:`$ python manage.py migrate`。
4. 选择并配置消息代理,并安装相应的客户端库。
- **配置**:
- 配置通过`settings.py`中的`Q_CLUSTER`字典完成。
- 示例配置:
```python
Q_CLUSTER = {
'name': 'myproject',
'workers': 8,
# 其他配置...
}
```
---
### **3. 消息代理**
Django Q支持以下消息代理:
- **Redis**(默认):
- 高性能,不依赖Django缓存框架。
- 依赖`redis`客户端库:`$ pip install redis`。
- **Disque**(仍处于Alpha阶段):
- 支持消息回执,确保任务分发可靠。
- 需要Django缓存框架配合。
- 支持批量任务接收。
- **IronMQ**:
- 基于HTTP的队列服务,支持批量任务接收。
- 需要Django缓存框架配合。
- 依赖`iron-mq`客户端库:`$ pip install iron-mq`。
- **SQS**:
- 使用`boto3`客户端库:`$ pip install boto3`。
---
### **4. 架构**
- **任务处理流程**:
- 任务在发送到消息代理前,会经 >>> 加密和压缩。
- Pusher进程持续从消息代理中拉取任务,解密后放入任务队列。
- **关键依赖库**:
- `django-picklefield`:用于存储任务参数和结果。
- `arrow`:用于任务调度的日期计算。
- `blessed`:提供终端监控布局。
---
### **5. 监控与管理**
- **Django Admin集成**:
- 提供三个主要模型:
- 成功任务(Success):显示任务执行成功的记录。
- 失败任务(Failure):记录任务执行失败的错误信息,可重新提交失败任务。
- 计划任务(Scheduled):查看、创建、编辑或删除定时任务。
- **监控工具**:
- **命令行工具**:`$ python manage.py qinfo`,查看集群统计信息。
- **编程接口**:通过`django_q.monitor.Stat`类获取集群状态。
- **任务重试**:
- 支持设置任务重试时间,但重试时间不得低于任务超时时间。
- 防止任务在等待队列中超时。
---
### **6. 其他注意事项**
- **版本兼容性**:
- 测试通过Python 2.7和3.4,Django 1.7.10和1.8.4。
- **推荐依赖**:
- `psutil`:优化进程 CPU亲和性:`$ pip install psutil`。
- `hiredis`:提升Redis性能:`$ pip install hiredis`。
---
以上是文档的核心内容总结,涵盖了Django Q的功能、安装、配置、消息代理、架构和监控等方面的关键信息。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
35 页请下载阅读 -
文档评分