搜索

epub文档 Django Q Documentation Release 0.7.17

516.85 KB 73 页 0 下载 78 浏览 0 评论 0 收藏
语言 格式 评分
英语
.epub
3
摘要
Django Q 是一个专为 Django 框架设计的任务队列、调度和工作者应用程序,使用 Python 多进程技术。它支持异步任务、计划任务、加密和压缩任务包等功能,并提供 Django 管理界面集成。文档详细介绍了其安装、配置、兼容性以及在不同操作系统上的使用注意事项,包括处理多进程、任务调度和错误管理等。
AI总结
# Django Q 0.7.17 发行说明总结 ## 概述 Django Q 是一个基于 Django 的任务队列、调度和工作进程应用,使用 Python 的 multiprocessing 模块管理多进程工作池。它支持异步任务、计划任务、加密压缩包等功能,并提供 Django 管理界面集成。 ## 主要特性 - **多进程工作池**:使用 multiprocessing 模块管理多个 worker 进程。 - **异步任务**:支持异步任务处理。 - **计划与重复任务**:支持 scheduled 和 repeated 任务。 - **加密与压缩**:任务数据加密和压缩传输。 - **结果存储**:任务结果可存储于数据库或缓存。 - **结果钩子**:支持任务结果钩子、组任务和链任务。 - **Django Admin 集成**:提供 Django 管理界面。 - **多实例支持**:适用于 PaaS 环境,支持多实例部署。 - **多种队列后端**:支持 Redis、Disque、IronMQ、SQS、MongoDB 或 ORM。 - **Rollbar 支持**:集成 Rollbar 进行错误管理。 ## 兼容性 - **Python**:支持 Python 2.7 和 3.5。 - **Django**:支持 Django 1.8.12 和 1.9.5,Django 1.7 可能不再被新版本测试。 - **操作系统**: - **OS X**:multiprocessing.Queue.qsize() 和 multiprocessing.cpu_count() 不可用,需安装 psutil。 - **Windows**:不支持 fork,需设置 sync=True 进行开发和测试。 ## 安装与配置 1. 安装:使用 pip 安装最新版本。 ```bash $ pip install Django-q ``` 2. 配置:将 Django_q 添加到 INSTALLED_APPS,并运行 Django 迁移。 ```bash $ python manage.py migrate ``` 3. 配置示例: ```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, 'db': 0, } } ``` ## 集群管理 - 启动集群: ```bash $ python manage.py qcluster ``` - 停止集群:使用 ctrl-c 或 SIGTERM/SIGKILL 信号。 - 配置参数:通过 Q_CLUSTER 设置 workers、recycle、timeout 等参数。 ## 任务处理 - **异步任务**:通过 async 函数异步执行任务。 - **计划任务**:使用 schedule 函数设置定时任务。 - **示例**: ```python def welcome_mail(user): # 发送立即邮件 async('django.core.mail.send_mail', 'Welcome', msg, 'from@example.com', [user.email]) # 一小时后发送后续邮件 schedule('django.core.mail.send_mail', 'Follow up', msg, 'from@example.com', [user.email], schedule_type=Schedule.ONCE, next_run=timezone.now() + timedelta(hours=1)) ``` ## 多集群 - 多集群可部署在多台机器上,需满足以下条件: - 使用相同的队列后端。 - 使用相同的集群名称。 - 分享相同的 SECRET_KEY。 ## 进程管理 - 使用 Procfile: ```text worker: python manage.py qcluster ``` - 使用 Circus 配置: ```ini [watcher:django_q] cmd = python manage.py qcluster numprocesses = 1 ``` ## 参考 - **类 Cluster**:通过 start() 方法启动集群,管理内存中的任务结果。 - **队列限制**:通过 queue_limit 设置内存中的任务数量。 ## 兼容性注意事项 - **Python 3.5**:Django Q 已测试兼容。 - **Django 版本**:优先支持 1.8.12 和 1.9.5,Django 1.7 可能不再被新版本测试。 ## 开源依赖 - **Django**:使用 Django 的标准功能。 - **Django-picklefield**:用于存储任务参数和结果。 - **Arrow**:用于任务调度的时间计算。 - **Blessed**:用于终端布局和监控界面。 ## 总结 Django Q 是一个功能强大的任务队列和调度工具,适用于 Django 项目的异步任务处理。它支持多种队列后端和集群管理,适合需要高效处理任务的场景。通过简单的配置和集成,用户可以快速上手并实现任务的异步化和自动化。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 66 页请下载阅读 -
文档评分
请文明评论,理性发言.