搜索

pdf文档 Django Q Documentation Release 0.5.3

358.27 KB 38 页 0 下载 50 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
Django Q 是一个用于处理异步任务的 Django 应用程序,支持任务调度、集群管理、监控等功能。文档详细介绍了其安装、配置、任务处理流程及监控界面。主要功能包括:使用 Redis 作为中央枢纽,支持多进程任务池,提供任务调度(如一次性、周期性任务),支持任务分组、结果存储及失败处理。配置参数包括 workers(工作进程数)、recycle(任务处理数阈值)、timeout(任务超时时间)等。文档还展示了如何通过 Django 管理界面查看成功任务和失败任务,并提供了示例和使用场景。
AI总结
# Django Q 0.5.3 文档总结 ## 1. 特性 - **多进程 worker 池**:支持 multiprocessing 的 worker 池,可配置 worker 数量、超时时间、回收策略等。 - **异步任务**:支持异步任务处理。 - **计划任务和重复任务**:提供任务调度功能。 - **加密和压缩**:任务数据可加密和压缩。 - **结果存储**:成功和失败的任务结果均可存储。 - **失败处理**:任务失败后可设置钩子处理。 - **Django Admin 集成**:通过 Django 的 admin 界面查看任务状态。 - **多集群监控**:支持多集群运行,可实时监控集群状态。 ## 2. 安装 - 使用 pip 安装:`pip install Django-q` - 添加到 `INSTALLED_APPS`:`'django_q'` - 运行 Django 迁移:`python manage.py migrate` - 确保 Redis 服务运行。 ## 3. 配置 - 配置文件路径:`settings.py` - 示例配置: ```python Q_CLUSTER = { 'name': 'myproject', 'workers': 8, 'recycle': 500, 'timeout': 60, 'compress': True, 'save_limit': 250, 'queue_limit': 500, 'cpu_affinity': 1, 'label': 'Django Q', 'redis': { 'host': '127.0.0.1', 'port': 6379, } } ``` - 配置参数说明: - `name`:区分不同项目,默认为 `default`。 - `workers`:worker 数量,默认为 CPU 核数。 - `recycle`:worker 处理任务数上限,默认 500。 - `timeout`:任务超时时间,默认无限制。 - `compress`:是否压缩任务数据,默认 False。 - `save_limit`:成功任务保存限制,默认 250。 - `queue_limit`:队列任务数量限制,默认 500。 ## 4. 集群 - **启动集群**:使用 `manage.py qcluster` 启动。 ```bash $ python manage.py qcluster ``` - **停止集群**:通过 `ctrl-c` 或信号终止。 - **多集群支持**: - 连接同一 Redis 服务。 - 使用相同集群名称。 - 使用相同的 `SECRET_KEY`。 ## 5. 监控 - **Stat 类**:获取集群状态信息。 - `cluster_id`:集群 ID。 - `status`:集群状态。 - `task_q_size`:任务队列大小。 - `done_q_size`:结果队列大小。 - **获取状态**: ```python Stat.get(cluster_id, r=redis_client) Stat.get_all(r=redis_client) ``` ## 6. 管理页面 - **任务状态**:通过 Django admin 查看成功和失败的任务。 - **筛选功能**:按组、名称、函数等过滤。 - **操作**:查看详情或删除任务。 ## 7. 其他 - **兼容性**:支持 Python 2.7 和 3.4,Django 1.7.10 和 1.8.4。 - **依赖**: - `Django-picklefield`:存储任务参数和结果。 - `Redis-py`:Redis 客户端。 - `Arrow`:任务调度。 - `Blessed`:终端布局。 ## 8. 示例 - **Procfile 配置**: ```Procfile worker: python manage.py qcluster ``` - **日志示例**: ```bash 10:57:40 [Q] INFO Q Cluster-31781 starting. 16:44:12 [Q] INFO Q Cluster-31781 stopping. ``` ## 9. 总结 Django Q 是一个功能强大的任务队列和调度工具,支持异步任务、计划任务、多集群运行和实时监控。通过简单的配置即可实现高效的任务管理,适合需要处理大量后台任务的 Django 项目。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 31 页请下载阅读 -
文档评分
请文明评论,理性发言.