pdf文档 Django Q Documentation Release 1.3.6

452.10 KB 62 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
Django Q 是一个功能丰富的任务队列和异步任务处理库,支持多种消息代理(如 Redis、IronMQ、Amazon SQS 和 MongoDB 等)和 Django ORM。它提供了强大的集群监控、任务调度(包括定时和重复任务)、失败处理、结果存储和缓存集成等功能。文档详细介绍了如何安装、配置和使用 Django Q,包括自定义 Broker、任务管理、集群监控和健康检查、以及与 Django Admin 的集成。
AI总结
以下是对《Django Q Documentation Release 1.3.6》的内容总结,按照文档结构进行梳理,突出核心观点和关键信息: --- ### **1. 主要功能与特点** Django Q 是一个功能强大的任务队列系统,支持以下核心功能: - 多进程 worker 池、异步任务、定时任务、重复任务。 - 支持签名和压缩包,确保任务传输安全。 - 支持通过数据库或缓存记录任务成功和失败信息。 - 提供结果钩子、任务分组和链式调用功能。 - 集成 Django Admin,支持多实例部署和集群监控。 - 支持 Redis、Disque、IronMQ、SQS、MongoDB 和 Django ORM 等多种消息代理。 - 提供 Rollbar 和 Sentry 错误报告支持。 当前版本支持 Python 3.7 和 3.8,Django 2.2.x 和 3.1.x,文档提供英文、德文和法文版本。 --- ### **2. 安装与配置** - 使用 pip 安装最新版本:`pip install django-q`。 - 在项目的 `settings.py` 中添加 `django_q` 到 `INSTALLED_APPS`。 - 配置消息代理(如 Redis、MongoDB 等),并在 `Q_CLUSTER` 中指定配置详细信息。 --- ### **3. 自定义Broker** - 支持自定义消息代理,通过继承 `Broker` 类可以扩展现有代理或添加新的代理类型。 - 示例:创建自定义 Broker 类并在 `Q_CLUSTER` 中配置使用。 --- ### **4. 任务异步处理** - 通过 `async_task` 函数发送异步任务,支持以下选项: - `hook`:任务执行完成后的回调函数。 - `group`:为任务分组,便于管理。 - `save`:控制是否保存任务结果。 - `timeout`:任务超时时间。 - `sync`:强制同步执行,适合测试。 - 支持通过 `q_options` 字典传递多个任务选项。 - 提供 `AsyncTask` 类,允许任务实例化并多次运行。 --- ### **5. 消息代理** Django Q 支持多种消息代理,包括: 1. **Redis**:高性能消息代理,适合高并发场景。 2. **Disque**:在 Heroku 上支持 Tynd Disque 插件。 3. **IronMQ**:基于 HTTP 的队列服务,支持批量处理。 4. **Amazon SQS**:稳定且经济实惠,适合 AWS 用户。 5. **MongoDB**:高扩展性和持久性,适合高流量需求。 6. **Django ORM**:使用 Django 数据库作为消息代理,适合中等流量和任务调度。 --- ### **6. 配置选项** - `save_limit`:限制成功任务存储数量,默认为 250。不存储失败任务。 - `guard_cycle`:守护线程睡眠时间,需配置为 0 < 值 < 60 秒。 - `sync`:强制所有任务同步执行,适合测试,默认为 False。 - `queue_limit`:限制单个集群内存中的任务数量,默认为 `workers^2`。 - `label`:Django Admin 页面的标签,默认为 'Django Q'。 - `catch_up`:控制任务调度的默认行为,默认为 True。 --- ### **7. 监控与扩展** - 提供自定义健康检查功能,监控集群状态。 - 示例:创建一个 HTTP 服务器,实时监控集群运行状态并返回健康检查结果。 --- ### **总结** Django Q 是一个强大且灵活的任务队列系统,支持多种消息代理和配置选项,适合不同场景的任务管理需求。其通过 Django 集成提供了良好的 Admin 支持和监控功能,同时支持自定义扩展,适合开发者根据需求定制化使用。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 55 页请下载阅读 -
文档评分
请文明评论,理性发言.