搜索

pdf文档 Django Q Documentation Release 0.7.9

397.77 KB 50 页 0 下载 134 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
文档主要介绍了Django Q的安装、配置和使用。Django Q是一个用于Django框架的任务队列管理工具,支持多种消息队列(如Redis、Disque、IronMQ、SQS、MongoDB或ORM)。文档详细说明了如何安装Django Q,配置集群参数(如workers、recycle、timeout等),以及如何使用任务调度、监控等功能。文档还提供了示例代码,展示了如何在实际项目中应用Django Q。
AI总结
### Django Q 0.7.9 文档总结 #### 1. 特性 - **安装**:通过 `pip install Django-q` 安装,添加 `django_q` 到 `INSTALLED_APPS`,并运行 Django 迁移。 - **配置**:通过 `Q_CLUSTER` 字典在 `settings.py` 中配置,支持以下参数: - `workers`:指定 worker 数量,默认为 CPU 核心数。 - `recycle`:指定 worker 处理任务数后 recycle 的数量,默认为 500。 - `timeout`:任务超时时间,默认为 `None`。 - `cpu_affinity`:指定 worker 的 CPU 亲和性,默认为 1。 - `redis`:配置 Redis 连接参数(如 `host`, `port`, `db`)。 - **中间件支持**:支持 Redis、Disque、MongoDB、IronMQ、SQS 等多种消息队列。 - Redis 是默认选择,性能最佳。 - Disque 是 Redis 的 fork,专注于可靠队列。 - MongoDB 提供持久化消息队列。 - **任务**:支持异步任务和调度任务,任务结果可存储在数据库或缓存中。 - **调度**:支持一次性、周期性任务,任务结果可通过钩子处理。 - **集群**:支持多进程池,提供任务队列监控和状态管理。 - **监控**:通过 `manage.py monitor` 启动,实时显示集群状态和任务队列信息。 - **管理页面**:集成 Django Admin,可查看和管理任务、调度、统计信息等。 - **兼容性**: - 支持 Python 2.7 和 3.5。 - 支持 Django 1.7.10 和 1.8.5。 - 兼容性测试覆盖最新版本的 Python 和 Django。 #### 2. 示例 - **发送邮件**: ```python from django_q.tasks import async, schedule 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)) ``` - **信号处理**: ```python from django.db.models.signals import pre_save from django.dispatch import receiver from django_q.tasks import async @receiver(pre_save, sender=User) def handle_user_save(sender, instance, **kwargs): async('some.background.task', 'handle_user_save', instance, ...) ``` #### 3. 兼容性与注意事项 - **OS X**:不支持 multiprocessing.Queue.qsize() 和 CPU 亲和力设置,但可通过 psutil 提供替代方案。 - **Windows**:不支持 multiprocessing.fork,但可通过设置 `sync=True` 使用同步模式。 - **Python 版本**:当前测试版本为 Python 2.7.10 和 3.5。 - **Django 版本**:支持 Django 1.7.10 和 1.8.5,Django 1.9 已兼容但未重点测试。 #### 4. 开源依赖 - **必选依赖**: - Django - `django-picklefield`:用于存储任务参数和结果。 - `arrow`:用于任务调度。 - `blessed`:用于终端布局。 - **可选依赖**: - `redis-py`、`hiredis`、`psutil`、`boto3`、`iron-mq`、`pymongo` 等,根据中间件选择安装。 #### 5. 监控与统计 - 提供实时监控界面,显示集群状态、任务队列大小、运行时长等信息。 - 支持多集群监控,适用于分布式部署。 #### 6. 总结 Django Q 是一个功能强大的任务队列解决方案,支持多种消息中间件、异步任务、任务调度、集群管理以及实时监控。通过简单的配置即可实现高效的后台任务处理,适合需要高并发处理和任务管理的 Django 项目。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 43 页请下载阅读 -
文档评分
请文明评论,理性发言.