Django Q Documentation
Release 1.3.6
453.51 KB
64 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
Django Q是一个原生Django任务队列、调度器和工作应用,使用Python多处理。它支持多种消息队列包括Redis、MongoDB和Django ORM,并提供了失败任务重试和管理员界面。配置选项包括save_limit、guard_cycle、sync和queue_limit。支持的错误报告插件如Rollbar和Sentry,通过Q_CLUSTER设置配置。支持的Python版本为3.7, 3.8, 3.9,Django版本为2.2.x和3.1.x。 | ||
AI总结 | ||
以下是对《Django Q Documentation Release 1.3.6》文档内容的中文总结,重点突出核心观点和关键信息:
---
### **Django Q 1.3.6 文档总结**
#### **简介**
Django Q 是一个原生 Django 任务队列、调度器和_worker_应用,使用 Python 多进程实现。它支持异步任务、定时任务、任务链、失败重试和成功存储等功能。
---
### **主要特性**
1. **核心功能**
- 多进程工作池
- 异步任务和定时任务(支持 Cron 表达式)
- 任务链、组和结果钩子
- 集成 Django Admin
- 支持 Redis、Disque、IronMQ、SQS、MongoDB 和 ORM 等消息队列
- 支持 Rollbar 和 Sentry 错误报告
- 多集群监控
2. **兼容性**
- 测试通过 Python 3.7、3.8 和 Django 2.2.x、3.1.x
- 支持英文、德文和法文。
---
### **安装与配置**
1. **安装步骤**
- 使用 pip 安装:`$ pip install django-q`
- 在 `settings.py` 中添加 `'django_q'` 到 `INSTALLED_APPS`
- 运行迁移命令:`$ python manage.py migrate`
- 选择并配置消息队列,并安装对应的客户端库
- 启动集群:`$ python manage.py qcluster`
2. **依赖要求**
- Python 3.7 或更高版本
- Django 2.2.x 或更高版本
- 其他可选依赖:`redis`、`pymongo`、`boto3` 等。
---
### **配置选项**
Django Q 通过 `settings.py` 中的 `Q_CLUSTER` 配置,支持多种设置,包括:
- `workers`:Worker 进程数,默认为 CPU 核数。
- `timeout`:任务超时时间,单位为秒,默认为 60。
- `save_limit`:成功任务的存储上限,默认为 250,设为 -1 表示不存储成功任务,0 表示存储所有成功任务。
- `queue_limit`:单个集群内存中保留的任务数,默认为 `workers**2`。
- `catch_up`:默认为 True,表示在集群恢复时执行所有错过的定时任务。
---
### **消息队列 (Broker)**
Django Q 支持多种 Broker,包括:
1. **Redis**
- 配置项:`host`、`port`、`db`、`password` 等,默认为本地 Redis。
2. **MongoDB**
- 需要 `pymongo` 客户端,适合小型任务队列。
3. **Django ORM**
- 使用 Django 数据库作为消息队列,适合中等流量和定时任务。
- 支持通过 Django Admin 编辑和删除排队中的任务。
4. **自定义 Broker**
- 支持自定义 Broker 类,通过 `broker_class` 配置实现。
---
### **错误报告**
Django Q 支持插件式错误报告机制,目前实现了:
1. **Rollbar**
2. **Sentry**
开发者可通过自定义插件扩展错误报告服务,需在 `Q_CLUSTER` 中配置。
---
### **调度与监控**
1. **定时任务**
- 支持 Cron 表达式和重复任务。
- 默认启用 catch-up功能,执行错过的任务。
2. **Admin 页面**
- 提供成功任务、失败任务、排队任务的管理界面。
- 支持按名称或组过滤任务。
---
### **扩展功能**
- **任务链 (Chains)**:支持任务的串行或并行执行。
- **结果钩子 (Hooks)**:任务成功或失败后可触发钩子函数。
- **信号 (Signals)**:任务在生命周期中发出信号,可用于扩展功能。
---
### **总结**
Django Q 是一个功能强大且灵活的任务队列系统,适合 Django 项目的异步任务处理和调度需求。它支持多种消息队列和扩展插件,能够通过配置和自定义满足不同场景的需求。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
57 页请下载阅读 -
文档评分