Django Q Documentation
Release 0.6.4
512.86 KB
53 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .epub | 3 |
摘要 | ||
Django Q是一个原生Django任务队列、调度器和工作者应用,使用Python多处理来管理任务。其核心功能包括处理异步任务、定时任务和重复任务,支持加密和压缩的数据包,并提供成功和失败任务的数据库记录。Django Q通过Django Admin提供管理界面,支持多种消息代理如Redis、Disque、IronMQ和SQS,并在多个平台上兼容。配置选项包括工作者数量、任务回收、超时设置和异常处理等。文档还提供了安装要求、配置示例和使用实例,如在发送电子邮件和信号处理中的应用。 | ||
AI总结 | ||
# 《Django Q Documentation Release 0.6.4》总结
## 项目概述
Django Q 是一个原生 Django 任务队列、调度器和 worker 应用程序,使用 Python 多进程技术。其主要特性包括:
- 多进程 worker 集群
- 异步任务、定时任务和重复任务
- 加密和压缩功能
- 失败与成功数据库记录
- 结果钩子和组别
-集成 Django Admin 界面
- 多实例、多集群监控
- 支持 Redis、Disque、IronMQ 或 SQS
-兼容 Python 2 和 3
## 安装与配置
1. **安装**:
- 使用 pip 安装:`pip install django-q`
- 添加 `django_q` 到 `INSTALLED_APPS`
- 运行 Django 数据库迁移:`python manage.py migrate`
- 选择并配置消息 broker(如 Redis、Disque 等)
2. **配置**:
- 通过 `settings.py` 中的 `Q_CLUSTER` 字典配置。
- 主要配置项包括:
- `name`:项目名称,默认为 'default'
- `workers`:worker 数量,默认为主机 CPU 核数
- `recycle`:worker 处理任务数后重启,默认 500
- `timeout`:任务超时时间(秒),默认 60
- `redis`:Redis 配置(如 host、port、db)
## 管理界面
Django Q 在 Django Admin 中提供三个模型:
1. **成功任务**:显示所有成功执行的任务,可按名称、func 或组筛选,默认最多保存 `save_limit` 个任务。
2. **失败任务**:显示因错误未完成的任务,可重提交,查看错误详情。
3. **定时任务**:显示所有调度任务,可查看调度结果。
## 使用示例
1. **异步任务**:
```python
from django_q import async
async('django.core.mail.send_mail', '主题', '内容', 'from@example.com', [user.email])
```
2. **定时任务**:
```python
from django.utils import timezone
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))
```
3. **信号触发异步任务**:
```python
from django.db.models.signals import pre_save
from django.dispatch import receiver
from django_q import async
@receiver(pre_save, sender=User)
def user_pre_save(sender, instance, **kwargs):
async('some.task', instance)
```
## 技术要求
- Python 2.7 与 3.4 测试通过
- Django 版本:1.7.10 与 1.8.4 测试通过
- 依赖项:
- `django-picklefield`:用于存储任务参数和结果
- `arrow`:用于任务调度
- `blessed`:用于终端布局
## 注意事项
1. **任务加密**:不可解密的任务将被丢弃或标记为失败。
2. **队列大小**:可通过 `queue_limit` 配置,避免队列无限增长。
3. **Redis 兼容性**:`queue.qsize()` 在 OS X 上不可用,始终返回 0。
## 开发与反馈
- 开発者:Ilan Steemers
- 文档生成工具:Sphinx 1.3.1
- 版权:2015 Ilan Steemers |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
46 页请下载阅读 -
文档评分