pdf文档 Django Q Documentation Release 0.7.15

416.75 KB 56 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
Django Q is a native Django task queue, scheduler, and worker application that utilizes Python multiprocessing. It supports features such as asynchronous tasks, scheduled and repeated tasks, encrypted and compressed packages, result hooks, and Django Admin integration. The application is compatible with multiple brokers like Redis, SQS, and MongoDB. Installation involves adding 'django_q' to INSTALLED_APPS, running migrations, and configuring the message broker. Key configuration options include worker count, task timeout, retry delay, compression, and task limits. The system also provides monitoring tools and supports task result storage and failure handling. Django Q is compatible with Django versions 1.8.8, 1.9.1, and ensures backward compatibility with Django 1.7.
AI总结
# 《Django Q Documentation Release 0.7.15》总结 ## 1. 功能概述 Django Q是一个原生Django任务队列、调度器和工作应用,支持多进程处理。其核心功能包括: - **多进程工作池**:通过Python多进程实现。 - **异步任务**:支持通过`async()`函数快速创建任务。 - **定时任务**:支持scheduled和repeated任务。 - **任务加密与压缩**:确保任务安全,减小传输负担。 - **结果存储**:支持将失败和成功的任务存储到数据库或缓存。 - **钩子、组和链**:允许在任务完成后执行自定义函数,支持任务分组和链式调用。 - **Django Admin集成**:可视化管理任务。 - **多实例支持**:适用于PaaS环境,支持多集群监控。 - **多种消息代理**:支持Redis、Disque、IronMQ、SQS、MongoDB或ORM。 - **Rollbar支持**:便于错误报告和监控。 兼容性:支持Python 2.7 & 3.5,Django 1.8.8 & 1.9.1。 ## 2. 安装步骤 - 使用pip安装:`pip install django-q`。 - 添加`django_q`到`INSTALLED_APPS`。 - 迁移数据库:`python manage.py migrate`。 - 选择并配置消息代理并安装相应客户端库。 ## 3. 配置说明 配置通过`settings.py`中的`Q_CLUSTER`字典进行。主要参数包括: - **name**:用于区分项目,作为队列名,部分代理可加密任务。 - **workers**:工作者数量,默认CPU核数,可手动设置或使用`psutil`。 - **recycle**:工作者处理任务数量后重启,释放内存,默认500次。 - **timeout**:任务超时时间,任务超时后被终止,默认无限制。 - **retry**:消息代理等待任务完成的时间,默认60秒。 - **compress**:压缩任务包,真实默认`False`,适合大负载。 - **save_limit**:成功任务存储数量,`0`为无限,`-1`不存储,默认250,失败任务总是保存。 - **sync**:强制同步执行,用于测试,默认`False`。 - **queue_limit**:单集群内存中保留的任务数,默认`workers**2`。 - **label**:Django Admin页面标签,默认`Django Q`。 - **catch_up**:集群启动后是否追赶错过的定时任务,默认`True`。 ## 4. 任务使用方法 任务通过`async()`函数创建,支持关键字参数: - **hook**:任务完成后执行的函数,函数接收完整的任务对象。 - **group**:任务组。 - **sync**:同步执行。 - **cached**:将结果存储到缓存,默认使用数据库。 - **timeout**:覆盖集群的任务超时设置。 - **q_options**:将选项字典传递给`async()`,避免关键字参数冲突。 示例: ```python from django_q.tasks import async async('math.copysign', 2, -2) # 直接调用 opts = {'hook': 'hooks.print_result', 'group': 'math', 'timeout': 30} async('math.modf', 2.5, q_options=opts) # 使用q_options传递配置 ``` ## 5. 监控与管理 通过Django Admin或命令行工具监控集群状态,包括: - **Host**:主机名称。 - **ID**:集群ID,同PID。 - **State**:当前状态,包含`Starting`、`Idle`、`Working`、`Stopping`、`Stopped`。 - **Pool**:当前工作者数量。 - **Task Queue (TQ)**:队列中任务数量,持续增长可能意味着任务过载。 - **Result Queue (RQ)**:结果队列大小,通常需要更长时间清除。 - **Reincarnations (RC)**:重新生成的工作者数量,高值提示任务错误或超时频繁。 消息代理方法: - `queue_size()`:队列中消息数量。 - `lock_size()`:等待确认的消息数量,仅部分代理支持。 - `ping()`:测试消息代理连通性。 - `info()`:显示当前代理信息。 - `get_broker()`:获取消息代理实例。 管理方法: - `empty_queue()`:清空队列。 - `delete_queue()`:从代理中删除队列。 通过这些配置和功能,Django Q为Django应用提供了一套高效的任务处理和监控系统,适用于各种后台任务处理需求。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 49 页请下载阅读 -
文档评分
请文明评论,理性发言.