搜索

pdf文档 Django Q Documentation Release 0.7.16

416.69 KB 56 页 0 下载 33 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
The document provides an in-depth guide to Django Q, a Python library for managing asynchronous tasks in Django projects. It covers installation, configuration, compatibility across different operating systems, and various features such as task management, clustering, monitoring, and integration with external services like Rollbar, IronMQ, and Amazon SQS. The guide also explains how to handle task results using caching and how to optimize task execution through signals and asynchronous operations.
AI总结
# Django Q 0.7.16 文档总结 ## 1. 特性概述 Django Q 是一个用于在 Django 项目中处理异步任务的扩展,支持任务调度、监控、集群管理等功能。其主要特性包括: - **任务处理**:支持异步任务执行,提供任务队列和结果管理。 - **集群管理**:通过 multiprocessing 模块管理多个 worker 进程,提升任务处理能力。 - **调度功能**:支持按时间频率(如小时、天、周、月、季度、年)执行任务。 - **监控与管理**:提供监控界面和日志记录,便于任务状态的跟踪。 - **扩展性**:支持多种消息队列(如 Redis、SQS、IronMQ 等)和自定义 broker。 ## 2. 安装与兼容性 - **安装**:通过 pip 安装 Django Q。 - **兼容性**: - 支持 Python 2 和 Python 3 的最新版本。 - 注意:Django 1.7.10 或更早版本不兼容 Python 3.5。 - 已知问题: - **OS X**:multiprocessing.Queue.qsize() 不支持,建议安装 psutil。 - **Windows**:不支持 fork,建议使用 sync 模式进行开发和测试。 ## 3. 配置参数 以下是关键配置参数及其默认值: - **workers**:指定集群中的 worker 数量,默认为 CPU 核心数。 - **timeout**:任务超时时间,默认为 None(无限制)。 - **retry**:任务重试间隔时间,默认为 60 秒。 - **compress**:是否压缩任务数据,默认为 False。 - **save_limit**:成功任务保存限制,默认为 250。 - **sync**:是否强制同步执行,默认为 False。 - **queue_limit**:单个集群保留的任务数量,默认为 workers**2。 - **label**:管理页面的显示标签,默认为 "Django Q"。 - **catch_up**:是否自动补上集群下线期间的任务,默认为 True。 - **broker_class**:自定义 broker 类。 - **bulk**:每次从队列获取的消息数量,默认为 1。 - **poll**:队列轮询间隔时间,默认为 0.2 秒。 - **cache**:指定缓存后端,默认为 "default"。 - **cached**:是否使用缓存存储结果,默认为 False。 - **scheduler**:是否启用调度功能,默认为 True。 - **rollbar**:集成 Rollbar 进行错误监控,需安装 rollbar 库并配置访问令牌。 ## 4. 调度功能 - 支持多种时间频率: - HOURLY:每小时执行一次。 - DAILY:每天固定时间执行。 - WEEKLY:每周固定日期和时间执行。 - MONTHLY:每月固定日期执行,若超出当月天数则顺延至月末。 - QUARTERLY:每季度执行一次。 - YEARLY:每年执行一次。 ## 5. 集群管理 - 使用 `python manage.py qcluster` 启动集群。 - 停止集群时会逐步关闭所有 worker 进程。 - 示例: ```bash $ python manage.py qcluster ``` ## 6. 监控与管理 - **监控**:通过 curses 库提供监控界面,但 Windows 不支持,可使用第三方端口。 - **管理页面**:提供自定义标签功能,便于在 Django admin 中管理任务队列。 - **Rollbar 集成**:通过配置 Rollbar 账户和密钥,将 worker 错误集中到 Rollbar 界面。 ## 7. 任务与异步处理 - **异步任务**:通过 `async()` 函数或 `Async` 类实例化任务。 - **缓存结果**:支持将任务结果存储在缓存后端(如 Redis 或 Memcached),可设置缓存超时时间。 - **示例**: ```python from django_q.tasks import async, result id = async('math.floor', 100, cached=10) result(id, wait=50, cached=True) ``` ## 8. 第三方集成 - **Tynd Disque**:通过环境变量配置 Tynd Disque 连接。 - **IronMQ**:配置 AWS 凭证和项目 ID 使用 IronMQ。 - **Amazon SQS**:配置 AWS 区域和凭证使用 SQS。 ## 9. 总结 Django Q 提供了强大而灵活的任务处理和调度功能,适用于需要异步处理和任务队列管理的 Django 项目。其支持多种消息队列、自定义配置和扩展功能,能够满足不同场景的需求。通过合理的配置和使用,可以显著提升应用的性能和用户体验。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 49 页请下载阅读 -
文档评分
请文明评论,理性发言.