Django Q Documentation
Release 0.7.9
397.77 KB
50 页
0 下载
134 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档主要介绍了Django Q的安装、配置和使用。Django Q是一个用于Django框架的任务队列管理工具,支持多种消息队列(如Redis、Disque、IronMQ、SQS、MongoDB或ORM)。文档详细说明了如何安装Django Q,配置集群参数(如workers、recycle、timeout等),以及如何使用任务调度、监控等功能。文档还提供了示例代码,展示了如何在实际项目中应用Django Q。 | ||
| AI总结 | ||
### Django Q 0.7.9 文档总结
#### 1. 特性
- **安装**:通过 `pip install Django-q` 安装,添加 `django_q` 到 `INSTALLED_APPS`,并运行 Django 迁移。
- **配置**:通过 `Q_CLUSTER` 字典在 `settings.py` 中配置,支持以下参数:
- `workers`:指定 worker 数量,默认为 CPU 核心数。
- `recycle`:指定 worker 处理任务数后 recycle 的数量,默认为 500。
- `timeout`:任务超时时间,默认为 `None`。
- `cpu_affinity`:指定 worker 的 CPU 亲和性,默认为 1。
- `redis`:配置 Redis 连接参数(如 `host`, `port`, `db`)。
- **中间件支持**:支持 Redis、Disque、MongoDB、IronMQ、SQS 等多种消息队列。
- Redis 是默认选择,性能最佳。
- Disque 是 Redis 的 fork,专注于可靠队列。
- MongoDB 提供持久化消息队列。
- **任务**:支持异步任务和调度任务,任务结果可存储在数据库或缓存中。
- **调度**:支持一次性、周期性任务,任务结果可通过钩子处理。
- **集群**:支持多进程池,提供任务队列监控和状态管理。
- **监控**:通过 `manage.py monitor` 启动,实时显示集群状态和任务队列信息。
- **管理页面**:集成 Django Admin,可查看和管理任务、调度、统计信息等。
- **兼容性**:
- 支持 Python 2.7 和 3.5。
- 支持 Django 1.7.10 和 1.8.5。
- 兼容性测试覆盖最新版本的 Python 和 Django。
#### 2. 示例
- **发送邮件**:
```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
from django.db.models.signals import pre_save
from django.dispatch import receiver
from django_q.tasks import async
@receiver(pre_save, sender=User)
def handle_user_save(sender, instance, **kwargs):
async('some.background.task', 'handle_user_save', instance, ...)
```
#### 3. 兼容性与注意事项
- **OS X**:不支持 multiprocessing.Queue.qsize() 和 CPU 亲和力设置,但可通过 psutil 提供替代方案。
- **Windows**:不支持 multiprocessing.fork,但可通过设置 `sync=True` 使用同步模式。
- **Python 版本**:当前测试版本为 Python 2.7.10 和 3.5。
- **Django 版本**:支持 Django 1.7.10 和 1.8.5,Django 1.9 已兼容但未重点测试。
#### 4. 开源依赖
- **必选依赖**:
- Django
- `django-picklefield`:用于存储任务参数和结果。
- `arrow`:用于任务调度。
- `blessed`:用于终端布局。
- **可选依赖**:
- `redis-py`、`hiredis`、`psutil`、`boto3`、`iron-mq`、`pymongo` 等,根据中间件选择安装。
#### 5. 监控与统计
- 提供实时监控界面,显示集群状态、任务队列大小、运行时长等信息。
- 支持多集群监控,适用于分布式部署。
#### 6. 总结
Django Q 是一个功能强大的任务队列解决方案,支持多种消息中间件、异步任务、任务调度、集群管理以及实时监控。通过简单的配置即可实现高效的后台任务处理,适合需要高并发处理和任务管理的 Django 项目。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
43 页请下载阅读 -
文档评分














Django Q Documentation
Release 0.3.6