Django Q Documentation
Release 0.2.2
208.74 KB
24 页
0 下载
274 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档介绍了Django Q的安装、配置和使用方法,涵盖任务处理、调度、集群管理及监控功能。Django Q依赖于Redis进行任务队列管理,并提供与Django admin的集成。文档详细说明了如何配置任务、调度任务、管理集群以及监控任务执行状态,并提供了示例配置和命令行工具的使用方法。 | ||
| AI总结 | ||
### Django Q 0.2.2 文档总结
Django Q 是一个用于在 Django 项目中实现任务队列和调度的工具,支持异步任务、任务调度、集群管理等功能。以下是文档的核心内容总结:
---
#### 1. **功能概述**
- **异步任务**:通过 `async()` 函数快速将任务异步处理。
- **任务调度**:支持一次性、周期性任务,包括按小时、天、周、月、季度、年等频率执行。
- **集群管理**:使用多进程池处理任务,支持任务队列的监控和管理。
- **结果存储**:成功和失败的任务结果均可存储,失败任务可重新提交。
- **监控界面**:通过命令启动监控界面,查看集群状态、任务队列等信息。
- **Django Admin 集成**:展示成功和失败的任务记录,支持删除和重提交失败任务。
- **加密和压缩**:任务包支持加密和压缩,防止任务交叉和数据泄露。
- **多环境兼容**:支持 Python 2.7 和 3.4,Django 1.7.8 和 1.8.2。
---
#### 2. **安装与配置**
- **安装**:使用 pip 安装最新版本:
```bash
$ pip install Django-q
```
- **配置**:在 `settings.py` 中添加 `django_q` 到 `INSTALLED_APPS`,并运行迁移:
```bash
$ python manage.py migrate
```
- **Redis 配置**:Django Q 默认使用 Redis 作为任务队列存储。配置 Redis 参数:
```python
Q_CLUSTER = {
'name': 'myproject',
'workers': 8,
'recycle': 500,
'timeout': 60,
'compress': True,
'save_limit': 250,
'redis': {
'host': '127.0.0.1',
'port': 6379,
'db': 0,
}
}
```
---
#### 3. **核心功能**
- **任务执行**:
- 使用 `async()` 提交异步任务:
```python
from django_q import async
task_id = async('math.copysign', 2, -2)
```
- 通过钩子函数处理任务结果:
```python
async('math.modf', 2.5, hook='hooks.print_result')
```
- **任务调度**:
- 使用 `Schedule` 模型定义任务计划:
```python
from django_q import models
schedule = models.Schedule(func='myapp.tasks.my_task', schedule_type='DAILY', repeats=5)
```
- 支持多种调度类型:`ONCE`、`HOURLY`、`DAILY`、`WEEKLY` 等。
- **集群管理**:
- 启动集群:
```bash
$ python manage.py qcluster
```
- 监控集群状态:
```bash
$ python manage.py qmonitor
```
- 集群状态指标:任务队列大小、工人数量、运行时长等。
---
#### 4. **监控与管理**
- **监控界面**:通过 `qmonitor` 命令启动监控界面,显示集群状态、任务队列信息等。
- **Django Admin**:
- **成功任务**:展示所有成功执行的任务记录。
- **失败任务**:展示失败任务详情,支持重提交失败任务。
- **性能优化**:
- 使用 `hiredis` 解析器提高 Redis 性能:
```bash
$ pip install hiredis
```
---
#### 5. **注意事项**
- **加密与安全**:Django Q 使用 `SECRET_KEY` 加密任务包,确保任务安全。
- **依赖管理**:Django Q 依赖以下库:
- `Django`
- `Django-picklefield`
- `Redis-py`
- `Arrow`
- `Blessed`
---
总结:Django Q 是一个功能强大且易于集成的任务队列和调度工具,适合在 Django 项目中实现异步任务处理和任务调度。通过合理的配置和使用,可以显著提升应用的性能和可扩展性。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
17 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.2.2