Django Q Documentation
Release 0.5.3
358.27 KB
38 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
文档详细介绍了Django Q的功能和配置,包括多进程工作池、异步任务、定时和重复任务、加密和压缩的数据包、失败和成功数据库、结果钩子和组、Django Admin集成、多实例PaaS兼容性、多集群监控、Redis broker、Python 2和3的支持。安装步骤包括使用pip安装、添加到INSTALLED_APPS、运行迁移命令,并确保Redis服务器运行。配置通过Q_CLUSTER字典在settings.py中处理,包括worker数量、任务超时、压缩、任务保存限制等。文档还说明了如何处理失败任务、定时任务的重复执行以及在Admin界面中进行任务监控和管理。 | ||
AI总结 | ||
以下是文档内容的简要总结,重点突出核心功能、配置和使用方法:
---
### **《Django Q Documentation Release 0.5.3》概要**
#### **1. 功能概述**
Django Q 是一个原生 Django 任务队列、调度器和工作应用,支持以下主要功能:
- 多进程 worker 池
- 异步任务处理
- 定时和重复任务
- 加密和压缩任务包
- 失败和成功任务记录
- 结果钩子和任务组
- Django Admin 集成
- 支持多实例和 PaaS 部署
- 多集群监控
- Redis 作为消息代理
- 支持 Python 2.7 & 3.4,Django 1.7.10 & 1.8.4
---
#### **2. 安装**
安装步骤如下:
1. 使用 pip 安装最新版本:
```bash
$ pip install django-q
```
2. 将 `django_q` 添加到 `INSTALLED_APPS` 中。
3. 运行数据库迁移:
```bash
$ python manage.py migrate
```
4. 确保 Redis 服务器已启动并可连接。
---
#### **3. 配置**
配置通过 `settings.py` 中的 `Q_CLUSTER` 字典完成,主要配置项包括:
- `name`: 项目名称,用于区分同一 Redis 服务器上的不同项目,默认为 `'default'`。
- `workers`: 集群 worker 数量,默认为 CPU 核数。
- `recycle`: 单 worker 处理任务的数量后回收,默认为 500。
- `timeout`: 单任务允许的超时时间(秒),默认为不超时。
- `compress`: 是否压缩任务包,,默认为 `False`。
- `save_limit`: 成功任务保存的最大数量,0 为无限,-1 为不保存,默认为 250。
- `redis`: Redis 连接配置,包括 `host`、`port` 和 `db`。
---
#### **4. 监控**
Django Q 提供多种监控方式:
- **Monitor**: 查看集群状态,包括任务数量、执行时间、worker 状态等。
- **qinfo 命令**: 显示集群统计信息:
```bash
$ python manage.py qinfo
```
- **Stat 类**: 通过代码查询集群状态,例如:
```python
from django_q.monitor import Stat
stat = Stat.get(cluster_id)
print(stat.status, stat.workers)
```
---
#### **5. Admin 界面**
- **成功任务**: 使用 `Success` 代理模型,可通过 `save_limit` 配置是否保存成功任务。
- **失败任务**: 使用 `Failure` 代理模型,失败任务会记录错误信息。
- **定时任务**: 支持创建、编辑、删除定时任务,atsuerrupt 属性可设置重复次数,负值表示无限次。
---
#### **6. 示例**
发送异步邮件的示例:
```python
from datetime import timedelta
from django.utils import timezone
from django_q import async, schedule
def welcome_mail(user):
# 立即发送邮件
async('django.core.mail.send_mail', 'Welcome', 'Welcome to our website', 'from@example.com', [user.email])
# 1 小时后发送跟进邮件
msg = 'Here are some tips to get you started...'
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 Q 是一个功能强大的 Django 任务队列工具,支持异步任务、定时任务和集群监控,适合高并发和复杂任务处理场景。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
31 页请下载阅读 -
文档评分