Django Q Documentation
Release 0.7.17
516.85 KB
73 页
0 下载
78 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .epub | 3 |
| 摘要 | ||
Django Q 是一个专为 Django 框架设计的任务队列、调度和工作者应用程序,使用 Python 多进程技术。它支持异步任务、计划任务、加密和压缩任务包等功能,并提供 Django 管理界面集成。文档详细介绍了其安装、配置、兼容性以及在不同操作系统上的使用注意事项,包括处理多进程、任务调度和错误管理等。 | ||
| AI总结 | ||
# Django Q 0.7.17 发行说明总结
## 概述
Django Q 是一个基于 Django 的任务队列、调度和工作进程应用,使用 Python 的 multiprocessing 模块管理多进程工作池。它支持异步任务、计划任务、加密压缩包等功能,并提供 Django 管理界面集成。
## 主要特性
- **多进程工作池**:使用 multiprocessing 模块管理多个 worker 进程。
- **异步任务**:支持异步任务处理。
- **计划与重复任务**:支持 scheduled 和 repeated 任务。
- **加密与压缩**:任务数据加密和压缩传输。
- **结果存储**:任务结果可存储于数据库或缓存。
- **结果钩子**:支持任务结果钩子、组任务和链任务。
- **Django Admin 集成**:提供 Django 管理界面。
- **多实例支持**:适用于 PaaS 环境,支持多实例部署。
- **多种队列后端**:支持 Redis、Disque、IronMQ、SQS、MongoDB 或 ORM。
- **Rollbar 支持**:集成 Rollbar 进行错误管理。
## 兼容性
- **Python**:支持 Python 2.7 和 3.5。
- **Django**:支持 Django 1.8.12 和 1.9.5,Django 1.7 可能不再被新版本测试。
- **操作系统**:
- **OS X**:multiprocessing.Queue.qsize() 和 multiprocessing.cpu_count() 不可用,需安装 psutil。
- **Windows**:不支持 fork,需设置 sync=True 进行开发和测试。
## 安装与配置
1. 安装:使用 pip 安装最新版本。
```bash
$ pip install Django-q
```
2. 配置:将 Django_q 添加到 INSTALLED_APPS,并运行 Django 迁移。
```bash
$ python manage.py migrate
```
3. 配置示例:
```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,
}
}
```
## 集群管理
- 启动集群:
```bash
$ python manage.py qcluster
```
- 停止集群:使用 ctrl-c 或 SIGTERM/SIGKILL 信号。
- 配置参数:通过 Q_CLUSTER 设置 workers、recycle、timeout 等参数。
## 任务处理
- **异步任务**:通过 async 函数异步执行任务。
- **计划任务**:使用 schedule 函数设置定时任务。
- **示例**:
```python
def welcome_mail(user):
# 发送立即邮件
async('django.core.mail.send_mail', 'Welcome', msg, 'from@example.com', [user.email])
# 一小时后发送后续邮件
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))
```
## 多集群
- 多集群可部署在多台机器上,需满足以下条件:
- 使用相同的队列后端。
- 使用相同的集群名称。
- 分享相同的 SECRET_KEY。
## 进程管理
- 使用 Procfile:
```text
worker: python manage.py qcluster
```
- 使用 Circus 配置:
```ini
[watcher:django_q]
cmd = python manage.py qcluster
numprocesses = 1
```
## 参考
- **类 Cluster**:通过 start() 方法启动集群,管理内存中的任务结果。
- **队列限制**:通过 queue_limit 设置内存中的任务数量。
## 兼容性注意事项
- **Python 3.5**:Django Q 已测试兼容。
- **Django 版本**:优先支持 1.8.12 和 1.9.5,Django 1.7 可能不再被新版本测试。
## 开源依赖
- **Django**:使用 Django 的标准功能。
- **Django-picklefield**:用于存储任务参数和结果。
- **Arrow**:用于任务调度的时间计算。
- **Blessed**:用于终端布局和监控界面。
## 总结
Django Q 是一个功能强大的任务队列和调度工具,适用于 Django 项目的异步任务处理。它支持多种队列后端和集群管理,适合需要高效处理任务的场景。通过简单的配置和集成,用户可以快速上手并实现任务的异步化和自动化。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
66 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.4.6