Django Q Documentation
Release 0.6.4
512.86 KB
53 页
0 下载
105 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .epub | 3 |
| 摘要 | ||
Django Q 是一个基于 Django 的任务队列、调度程序和工作器应用程序,使用 Python 多进程技术。它支持异步任务、计划任务、加密压缩包、失败和成功数据库等功能,并兼容多种队列系统如 Redis、Disque、IronMQ 和 SQS。文档详细介绍了其安装、配置、集群管理以及使用示例,如邮件发送和信号处理。 | ||
| AI总结 | ||
### Django Q 0.6.4 文档总结
#### 概述
Django Q 是一个基于 Django 的任务队列、调度和工作器应用,使用 Python 的 multiprocessing 模块管理任务。它支持异步任务、计划任务、结果存储等功能,并兼容多种消息队列(如 Redis、Disque、IronMQ 和 SQS)。
---
#### 主要功能
1. **任务管理**:
- 多进程工作池
- 异步任务
- 计划任务(支持一次性、重复性任务)
- 任务结果存储(成功/失败)
2. **任务存储与加密**:
- 任务以加密和压缩包形式存储
- 支持结果数据库记录
3. **扩展与集成**:
- 多集群监控
- PaaS 兼容性(支持多实例)
- Django Admin 集成
- 支持多种消息队列(Redis、Disque、IronMQ、SQS)
4. **配置与控制**:
- 灵活的配置选项(如 worker 数量、超时、重试次数等)
- 任务分组与钩子函数
5. **兼容性**:
- 支持 Python 2.7 和 3.4
- 兼容 Django 1.7.10 和 1.8.4
---
#### 安装与配置
1. **安装**:
- 使用 pip 安装:`pip install Django-q`
- 将 `django_q` 添加到 `INSTALLED_APPS`
- 运行 Django 迁移:`python manage.py migrate`
2. **配置**:
- 配置消息队列(如 Redis、Disque 等)
- 配置任务队列参数(如 `workers`、`timeout`、`retry` 等)
---
#### 核心配置选项
- **`workers`**:指定集群中的 worker 数量。
- **`timeout`**:任务执行超时时间(默认 90 秒)。
- **`retry`**:任务失败后重试次数。
- **`compress`**:是否压缩任务数据。
- **`save_limit`**:成功任务的最大保存数量。
- **`sync`**:是否同步执行任务(主要用于调试)。
- **`queue_limit`**:队列中的最大任务数。
---
#### 集群管理
- **启动集群**:使用 `manage.py qcluster` 命令启动。
```bash
$ python manage.py qcluster
```
- **停止集群**:通过 `ctrl-c` 或信号(`SIGTERM`、`SIGKILL`)停止。
- **配置参数**:通过 `Q_CLUSTER` 设置集群行为,如 worker 数量、超时时间等。
---
#### 多集群
- 支持在多台机器上运行多个集群,前提是使用相同的队列。
- 配置多个消息队列以实现负载均衡。
---
#### 任务监控与管理
- **Django Admin**:
- 成功任务:显示所有成功执行的任务,支持按组过滤。
- 失败任务:显示失败任务,支持重试。
- 计划任务:显示所有计划任务,支持手动触发。
- **任务钩子**:
- 任务完成后调用钩子函数(如发送邮件)。
---
#### 信号处理
- 支持通过 Django 模型信号触发异步任务,避免阻塞主进程。
---
#### 任务示例
1. **异步任务**:
```python
from django_q import async
async('django.core.mail.send_mail', 'Welcome', 'msg', 'from@example.com', [user.email])
```
2. **计划任务**:
```python
from django_q import schedule
schedule('django.core.mail.send_mail', 'Follow up', 'msg', 'from@example.com', [user.email], schedule_type=Schedule.ONCE, next_run=timezone.now() + timedelta(hours=1))
```
---
#### 注意事项
- 任务结果加密使用 Django 的 `SECRET_KEY`,需确保配置正确。
- 日期处理需注意闰年问题(如 February 29th 会自动调整为 February 28th)。
---
#### 支持的消息队列
- **Redis**:推荐使用 `Django-redis` 连接池。
- **Disque**:支持多个节点和认证。
- **IronMQ** 和 **SQS**:提供额外的队列选项。
---
#### 兼容性
- **Python**:2.7 和 3.4。
- **Django**:1.7.10 和 1.8.4。
---
以上为《Django Q Documentation Release 0.6.4》的核心内容总结。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
46 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.4.6