搜索

epub文档 Django Q Documentation Release 0.7.9

514.67 KB 62 页 0 下载 119 浏览 0 评论 0 收藏
语言 格式 评分
英语
.epub
3
摘要
Django Q 是一个基于 Django 的任务队列、调度和工作者应用,使用 Python 的 multiprocessing 模块。文档详细介绍了其安装、配置、功能模块以及在不同操作系统上的兼容性和已知问题。主要内容包括:支持的第三方库(如 Django、Django-picklefield、Arrow、Blessed 等)、任务处理示例、配置参数(如 workers、recycle、timeout 等)、任务调度与结果处理方法,以及对 Redis、Disque、MongoDB 等消息队列的支持。
AI总结
# Django Q 0.7.9 发布文档总结 ## 1. 项目简介 Django Q 是一个基于 Django 的任务队列、调度程序和工人应用程序,使用 Python 多进程技术。它支持异步任务、计划任务、加密压缩、结果存储等功能,并提供 Django Admin 集成和多集群监控。 ## 2. 兼容性 - **操作系统**: - **OS X**:不支持 `multiprocessing.Queue.qsize()` 和 `multiprocessing.cpu_count()`,可通过安装 `psutil` 解决。 - **Windows**:不支持集群和工人的多进程代码(因无法fork),可通过设置 `sync=True` 进行开发和测试。 - **Python 版本**:支持 Python 2.7 和 3.5,兼容 Django 1.7.10 和 1.8.4。 - **Django 版本**:兼容 Django 1.7.10 和 1.8.5,Django 1.9a1 已测试但未正式支持。 ## 3. 功能亮点 - **核心功能**: - 多进程工作池 - 异步任务 - 计划和重复任务 - 加密和压缩任务包 - 失败与成功数据库或缓存存储 - 结果钩子和组 - Django Admin 集成 - 多集群监控 - **任务存储**:支持 Redis、Disque、IronMQ、SQS、MongoDB 或 ORM。 - **结果存储**:支持数据库或缓存。 ## 4. 安装与配置 - **安装**: ```bash $ pip install Django-q ``` - **配置**: - 将 `Django_q` 添加到 `INSTALLED_APPS`。 - 运行 Django 迁移命令: ```bash $ python manage.py migrate ``` - 配置消息队列并安装相应客户端库。 - **示例配置**: ```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, } } ``` ## 5. 依赖项 - **必选依赖**: - Django - django-picklefield - Arrow - Blessed - **可选依赖**: - `psutil`:用于 CPU 计数和替代某些系统功能。 - 第三方消息队列客户端(如 Redis、MongoDB 等)。 ## 6. 示例与使用场景 - **邮件发送**: ```python from django.utils import timezone from django_q.tasks import async, schedule from django_q.models import Schedule 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)) ``` - **信号处理**: ```python from django.db.models.signals import pre_save from django.dispatch import receiver from django_q.tasks import async @receiver(pre_save) def pre_save_handler(sender, instance, **kwargs): async('some_task', 'args', kwargs) ``` ## 7. 注意事项 - **任务加密**:任务无法解密时将被丢弃或标记为失败。 - **队列限制**:避免设置过高的队列限制,以免任务超时。 - **重复任务**:重复任务可能导致数据库错误,但最终结果以第一次为准。 ## 8. 监控与调试 - **监控**:支持通过终端布局查看集群状态。 - **日志**:记录任务状态和错误信息。 ## 9. 未来计划 - **扩展支持**:计划增加更多消息队列支持。 - **兼容性**:未来版本可能不再正式支持 Django 1.7,建议关注最新版本的兼容性。 如遇到问题,请提交 GitHub 问题报告:[https://github.com/Koed00/django-q](https://github.com/Koed00/django-q)。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 55 页请下载阅读 -
文档评分
请文明评论,理性发言.