Django Q Documentation
Release 0.7.11
412.45 KB
54 页
0 下载
50 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档详细介绍了Django Q的安装、配置、功能和使用方法。Django Q是一个用于在Django项目中处理异步任务的扩展,支持多种消息队列(如Redis、Disque、MongoDB等),并提供了任务调度、集群管理和监控等功能。文档强调了Django Q的兼容性,支持Python 2.7和3.5,以及Django 1.7.10和1.8.5。配置部分包括 workers、recycle、timeout 等参数,用户可以根据项目需求进行调整。 | ||
| AI总结 | ||
### Django Q 0.7.11 文档总结
#### 1. 安装
- 使用 `pip` 安装 Django Q:
```bash
$ pip install Django-q
```
- 将 `django_q` 添加到 `INSTALLED_APPS` 中。
- 运行数据库迁移:
```bash
$ python manage.py migrate
```
#### 2. 配置
- 配置文件 `settings.py` 中添加 `Q_CLUSTER` 字典,设置以下参数:
- `name`: 项目名称,默认为 `default`。
- `workers`: 工作进程数,默认为 CPU 核心数。
- `recycle`: 工作进程处理任务数上限,默认为 500。
- `timeout`: 任务超时时间,默认为 `None`。
- `broker`: 消息代理配置,如 Redis 或 MongoDB。
#### 3. 消息代理
- 支持多种消息代理:
- Redis:默认 broker,性能最佳。
- Disque:高可靠性队列,基于 Redis。
- MongoDB:持久化消息队列。
- SQS:使用 `boto3`。
- IronMQ:使用官方 Python 绑定。
#### 4. 任务
- 异步任务:使用 `async()` 执行任务,支持超时、缓存和结果钩子。
- 同步测试:通过 `sync=True` 选项进行同步测试。
- 任务分组:通过 `group` 参数组织任务,便于管理和监控。
#### 5. 调度
- 支持定时和重复任务:
- 使用 `schedule()` 函数设置任务的运行时间。
- 支持 `ONCE` 和 `INTERVAL` 类型。
#### 6. 集群
- 集群管理:
- 支持多集群监控。
- 停止过程:确保任务队列和结果队列清空,避免数据丢失。
#### 7. 监控
- 监控功能:
- 显示集群状态、任务队列和结果队列。
- 提供停止和重启集群的功能。
#### 8. 管理页面
- 集成 Django admin:
- 成功任务:显示执行成功的任务,支持过滤和搜索。
- 失败任务:显示执行失败的任务,支持重试。
- 调度任务:管理定时任务,支持创建、编辑和删除。
#### 9. 兼容性
- 支持 Python 2.7 和 3.5。
- 支持 Django 1.7.10 和 1.8.5。
- 已知问题:
- OS X:不支持 `multiprocessing.Queue.qsize()` 和 CPU 亲和性。
- Windows:不支持集群的进程 fork。
#### 10. 示例
- 发送邮件:
```python
from django_q.tasks import async, schedule
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))
```
- 异步任务分组:
```python
for i in range(100):
async('math.frexp', i, group='frexp', cached=True, broker=broker)
result_group('frexp', wait=50, count=100, cached=True)
```
### 总结
Django Q 是一个功能强大的任务队列和调度工具,支持多种消息代理和集群管理,提供丰富的监控和管理功能。通过简洁的配置和灵活的任务处理方式,能够高效地处理异步任务和定时任务。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
47 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.3.6