Django Q Documentation
Release 0.7.13
527.33 KB
73 页
0 下载
131 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .epub | 3 |
| 摘要 | ||
Django Q是一个基于Django框架的任务队列、调度和工作器应用,使用Python的 multiprocessing 实现。它支持多进程工作池、异步任务、计划任务、加密和压缩包等功能,并兼容多种消息队列如Redis、Disque、IronMQ和SQS。文档详细介绍了其安装步骤、配置选项(如name、workers、recycle、timeout等)以及在不同操作系统(OS X和Windows)上的兼容性问题。此外,还提到了依赖项和如何配置不同的消息队列。 | ||
| AI总结 | ||
# Django Q 0.7.13 文档总结
## 概述
Django Q 是一个基于 Django 的任务队列、调度和工人应用,使用 Python 多进程技术实现。它支持异步任务、计划任务、重复任务等功能,并提供加密、压缩、结果存储、集群监控等功能。
## 核心功能
- **多进程 worker 池**:支持多进程处理任务。
- **异步任务**:支持异步任务执行。
- **计划和重复任务**:支持基于时间的任务调度。
- **加密和压缩**:任务数据加密和压缩传输。
- **结果存储**:支持将任务结果存储到数据库或缓存。
- **结果钩子、组和链**:支持任务链和依赖关系。
- **Django Admin 集成**:通过 Django 管理界面查看和管理任务。
- **多集群监控**:支持监控多个集群。
- **多种消息代理支持**:支持 Redis、Disque、IronMQ、SQS、MongoDB 等。
## 安装与配置
- **安装**:使用 pip 安装:`pip install Django-q`。
- **配置**:在 Django 项目中添加 `django_q` 到 `INSTALLED_APPS`,并运行迁移:`python manage.py migrate`。
- **配置示例**:
```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,
}
}
```
## 兼容性
- **Python**:支持 Python 2.7 和 3.5。
- **Django**:兼容 Django 1.8.8 和 1.9.1,部分版本可能与 Django 1.7 兼容。
- **第三方库**:依赖于 Django、Django-picklefield、Arrow 和 Blessed 等库。
## 操作系统兼容性
- **OS X**:已知问题包括 `multiprocessing.Queue.qsize()` 不支持和 CPU 计数问题,推荐安装 psutil。
- **Windows**:不支持 fork,但可通过设置 `sync=True` 以单进程模式运行。
## 任务管理
- **成功任务**:记录所有成功执行的任务,可通过 Django Admin 查看。
- **失败任务**:记录失败任务并提供重试功能。
- **计划任务**:支持基于时间的任务调度。
## 数据存储与加密
- 任务数据加密存储,使用 `SECRET_KEY` 加密。
- 成功和失败任务结果可存储到数据库或缓存。
## 第三方支持
- 支持多种消息代理(如 Redis、Disque、IronMQ 等),并提供相应的配置选项。
## 已知问题
- **OS X**:部分多进程功能受限,需依赖 psutil 解决。
- **Windows**:不支持 fork,但可通过同步模式运行。
## 总结
Django Q 是一个功能丰富的任务队列和调度工具,适合需要异步任务处理和计划任务的 Django 项目。其多进程支持、多种消息代理兼容性以及 Django Admin 集成使其成为处理任务队列的有力工具。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
66 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.4.6