搜索

pdf文档 Django Q Documentation Release 0.3.6

235.40 KB 30 页 0 下载 177 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
Django Q 是一个基于 Django 的任务队列和工作流程应用,使用 Python 的 multiprocessing 模块来管理任务处理。文档详细介绍了其功能,包括任务队列的安装、任务调度、集群管理、监控界面等。主要功能有:支持多进程 worker 池、异步任务、 scheduled 和 repeated tasks、加密和压缩包、失败和成功数据库、结果钩子、Django Admin 集成、PaaS 兼容性、多集群监控以及 Redis 支持。文档还提供了详细的安装步骤、任务调度频率配置、集群启动与停止方法,以及如何通过 Django 的 admin 界面管理成功和失败的任务。
AI总结
### Django Q 0.3.6 文档总结 #### 1. 简介 Django Q 是一个基于 Django 的任务队列和工作者应用,使用 Python 的 multiprocessing 模块。其主要功能包括: - **异步任务**:支持异步任务处理。 - **计划任务**:支持 scheduled 和 repeated 任务。 - **加密和压缩**:任务数据经过加密和压缩。 - **结果数据库**:记录任务的失败和成功结果。 - **结果钩子**:任务完成后触发钩子函数。 - **Django Admin 集成**:通过 Django 的 admin 界面管理任务。 - **多实例支持**:支持 PaaS 环境下的多实例部署。 - **多集群监控**:支持多集群的监控和管理。 - **Redis 支持**:使用 Redis 作为任务队列的后端存储。 Django Q 已经测试兼容 Python 2.7 & 3.4 以及 Django 1.7.9 & 1.8.3。 --- #### 2. 安装 安装 Django Q 的步骤如下: 1. 使用 pip 安装最新版本: ```bash $ pip install Django-q ``` 2. 将 `django_q` 添加到项目的 `INSTALLED_APPS` 中: ```python INSTALLED_APPS = ( # 其他应用 'django_q', ) ``` 3. 运行 Django 迁移以创建数据库表: ```bash $ python manage.py migrate ``` 4. 确保 Redis 服务器已运行,并根据需要配置重复任务的保留策略(正数保留结果,负数自动删除)。 --- #### 3. 任务调度 Django Q 支持多种任务调度频率: - **HOURLY**:每小时运行一次,从第一次运行时间开始。 - **DAILY**:每天运行一次,从第一次运行的日期和时间开始。 - **WEEKLY**:每周运行一次,从第一次运行的日期和时间开始。 - **MONTHLY**:每月运行一次,从上个月的最后运行时间开始。 - **QUARTERLY**:每季度运行一次(每 3 个月)。 - **YEARLY**:每年运行一次。 **注意事项**: - 月份任务可能会因月份天数不同而调整(例如从 31 日调整到下个月的最后一天)。 - 年份任务若设置为闰年的 2 月 29 日,则会在非闰年运行在 2 月 28 日。 --- #### 4. 集群管理 Django Q 使用 `multiprocessing` 模块管理一个工作者池,通过以下命令启动集群: ```bash $ python manage.py qcluster ``` **示例输出**: ``` 10:57:40 [Q] INFO Q Cluster-31781 starting. 10:57:40 [Q] INFO Process-1:1 ready for work at 31784 ... 10:57:40 [Q] INFO Q Cluster-31781 running. ``` **停止集群**: - 使用 `ctrl-c` 或信号 `SIGTERM` 和 `SIGKILL` 停止集群。 - 停止时会依次关闭工作者进程: ``` 16:44:12 [Q] INFO Q Cluster-31781 stopping. 16:44:13 [Q] INFO Process-1:1 stopped doing work ... 16:44:15 [Q] INFO Q Cluster-31781 has stopped. ``` **多集群配置**: - 多集群需要满足以下条件: - 使用相同的 Redis 服务器。 - 使用相同的集群名称。 - 使用相同的 `SECRET_KEY`。 --- #### 5. 监控 Django Q 提供了一个 `Stat` 类用于监控集群状态,支持以下方法和属性: - `get(cluster_id, r=redis_client)`:获取指定集群的统计信息。 - `get_all(r=redis_client)`:获取所有活跃集群的统计信息。 - `empty_queues()`:检查任务队列和结果队列是否为空。 - `done_q_size`:获取结果队列中的任务数量。 - `workers`:获取当前集群中的工作者进程 ID 列表。 --- #### 6. Django Admin 界面 Django Q 的 admin 界面默认使用 Django 的模型 admin,包含以下三个模型: 1. **成功任务**:展示所有成功执行的任务,支持查看详情或删除。 2. **失败任务**:展示所有失败的任务,支持重新提交失败任务。 3. **计划任务**:管理计划任务的创建、编辑和删除。 --- #### 7. 其他注意事项 - **性能提示**:不建议在同一环境中运行多个集群实例,因为这不会提高性能。 - **进程管理工具**:虽然可以使用 Supervisor 或 Circus 管理集群,但集群内部已集成健康检查和进程管理功能。 --- #### 8. 索引 文档末尾列出了 Django Q 模块和类的相关术语和方法索引,包括任务、调度、集群等核心功能的详细说明。 --- ### 总结 Django Q 是一个功能强大的 Django 任务队列工具,支持异步任务、计划任务、多集群监控和 Redis 集成。通过简洁的安装步骤和直观的 admin 界面,用户可以轻松管理和监控任务的执行状态。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 23 页请下载阅读 -
文档评分
请文明评论,理性发言.