Django Q Documentation
Release 1.3.6
452.10 KB
62 页
0 下载
155 浏览
0 评论
0 收藏
所属分类:
后端开发 / Python / Django
| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档详细介绍了Django Q 1.3.6版本的功能、安装和配置方法。Django Q是一个用于处理异步任务、调度任务和集群管理的工具,支持多种消息队列如Redis、Disque、IronMQ等。文档还涵盖了任务分组、迭代器、链、调度、监控以及错误处理等功能,并提供了如何集成到Django项目中的指导。 | ||
| AI总结 | ||
# Django Q 1.3.6 文档总结
## 1. 特性
Django Q 是一个用于在 Django 项目中处理异步任务的工具,支持以下功能:
- **多进程工作池**:支持 multiprocessing 池,用于异步任务处理。
- **异步任务**:通过 `async_task` 函数实现异步任务。
- **调度、cron 和重复任务**:支持定时任务和重复任务。
- **结果存储**:支持将结果存储在数据库或缓存中。
- **结果钩子、组和链**:支持任务组和链,便于任务组合。
- **Django Admin 集成**:提供管理页面用于监控和管理任务。
- **多集群监控**:支持多集群监控。
- **多种 Broker 支持**:支持 Redis、Disque、IronMQ、SQS、MongoDB 或 Django ORM 作为消息队列。
- **Rollbar 和 Sentry 支持**:支持集成 Rollbar 和 Sentry 进行错误报告。
## 2. 安装
- 使用 pip 安装最新版本:
```bash
$ pip install Django-q
```
- 将 `Django_q` 添加到项目 `settings.py` 的 `INSTALLED_APPS` 中。
## 3. 依赖项
- **boto3**:用于 AWS SQS:
```bash
$ pip install boto3
```
- **iron-mq**:用于 IronMQ Broker:
```bash
$ pip install iron-mq
```
- **pymongo**:用于 MongoDB Broker:
```bash
$ pip install pymongo
```
- **Redis**:默认 Broker,无需额外安装。
- **Disque**:基于 Redis 的可靠队列,支持 Alpha 版本。
- **MongoDB**:支持作为持久化消息队列。
- **rollbar**:用于错误通知:
```bash
$ pip install rollbar
```
- **croniter**:用于解析 cron 表达式:
```bash
$ pip install croniter
```
## 4. 配置
Django Q 的配置通过 `Q_CLUSTER` 字典完成,支持以下选项:
- **broker_class**:自定义 Broker 类。
- **bulk**:设置每轮获取的消息数量,提高性能。
- **poll**:设置队列轮询间隔(仅适用于 ORM 和 MongoDB Broker)。
- **cache**:指定用于统计的缓存名称。
- **cached**:启用或禁用缓存存储结果。
- **scheduler**:启用或禁用调度器。
- **error reporter**:配置错误报告器(如 Rollbar 或 Sentry)。
- **save limit**:限制成功任务的存储数量,默认为 250。
## 5. 错误处理
Django Q 提供了一个可插拔的错误报告系统,支持 Rollbar 和 Sentry。错误报告器通过 `Q_CLUSTER` 配置启用。
## 6. 信号
Django Q 在任务生命周期中发出信号:
- `pre_enqueue`:任务入队前。
- `pre_execute`:任务执行前。
## 7. 兼容性
Django Q 支持 Python 3.7 和 3.8,以及 Django 2.2.x 和 3.1.x。
## 8. 示例
以下是一个简单的异步任务示例:
```python
from django_q.tasks import async_task, fetch
# 创建一个同步任务
task_id = async_task('my.buggy.code', sync=True)
# 获取任务结果
task = fetch(task_id)
if not task.success:
print(f'An error occurred: {task.result}')
```
## 9. 总结
Django Q 是一个功能强大的工具,适用于在 Django 项目中处理异步任务。通过灵活的配置和丰富的功能,用户可以轻松实现任务调度、错误监控和多集群管理。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
55 页请下载阅读 -
文档评分














Django Q Documentation
Release 1.3.6