搜索

epub文档 Django Q Documentation Release 0.7.10

518.39 KB 67 页 0 下载 134 浏览 0 评论 0 收藏
语言 格式 评分
英语
.epub
3
摘要
Django Q 是一个基于 Django 的任务队列、调度和工人应用程序,使用 Python 的 multiprocessing 模块管理任务。文档介绍了其安装、配置、功能以及在不同操作系统上的兼容性问题。主要功能包括多进程任务处理、异步任务、计划任务、加密压缩包、结果存储、Django 管理界面集成等。文档还提到了在 OS X 和 Windows 上的已知问题及解决方法,并提供了配置示例和使用案例。
AI总结
## Django Q 0.7.10 发布说明及使用指南 ### 项目简介 Django Q 是一个基于 Django 的任务队列、调度程序和工人应用程序,使用 Python 的 multiprocessing 模块来管理任务处理。 ### 功能特点 - ** multiprocessing 工作池**:支持多进程任务处理。 - **异步任务**:允许异步执行任务。 - **计划和重复任务**:支持任务的计划和重复执行。 - **加密和压缩包**:任务数据加密和压缩。 - **结果存储**:任务结果可存储于数据库或缓存。 - **结果钩子和组**:支持任务结果的钩子和分组处理。 - **Django 管理界面集成**:提供 Django 后台管理界面。 - **多实例支持**:适用于多平台即服务(PaaS)环境。 - **多集群监控**:支持多集群监控。 - **多种消息队列**:支持 Redis、Disque、IronMQ、SQS、MongoDB 或 ORM。 ### 兼容性 - **Python 版本**:支持 Python 2.7 和 3.5,兼容 Django 1.7.10 和 1.8.5。 - **操作系统**: - **OS X**:multiprocessing.Queue.qsize() 和 multiprocessing.cpu_count() 不可用,建议安装 psutil。 - **Windows**:不支持 multiprocessing.forking,建议设置 sync=True 进行同步调用。 ### 安装与配置 1. **安装**: ```bash $ pip install Django-q ``` 2. **配置**: - 将 django_q 添加到项目 settings.py 的 INSTALLED_APPS 中。 - 运行 Django 迁移创建数据库表: ```bash $ python manage.py migrate ``` - 配置消息队列并安装相应的客户端库。 ### 配置参数 - **name**:项目名称,用于区分不同项目。 - **workers**:指定 worker 的数量,默认为 CPU 核心数。 - **recycle**:每个 worker 处理任务数达到 recycle 后会重新启动。 - **timeout**:任务超时时间,默认 60 秒。 - **compress**:是否压缩任务数据,默认为 True。 - **save_limit**:保留结果的数量,默认 250。 - **queue_limit**:队列最大任务数,默认 500。 - **cpu_affinity**:指定 worker 使用的 CPU 核心,默认为 1。 - **label**:任务队列的标签,默认为 "Django Q"。 - **redis 配置**:指定 Redis 服务的连接信息。 ### 使用示例 - **发送邮件**: ```python from django_q.tasks import async, schedule def welcome_mail(user): # 发送立即邮件 async('django.core.mail.send_mail', 'Welcome', 'Welcome message', 'from@example.com', [user.email]) # 安排一小时后发送后续邮件 schedule('django.core.mail.send_mail', 'Follow up', '使用说明', '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 pre_user_save(sender, instance, **kwargs): async('some.task', 'args', kwargs) ``` ### 注意事项 - **多集群**:多个集群可以使用相同的队列,但需确保使用相同的 broker 和配置。 - **性能优化**:通过调整 workers、recycle 和 timeout 参数优化任务处理。 - **错误处理**:任务无法解密时会自动丢弃或标记为失败。 ### 其他 - **进程管理**:Django Q 内置健康检查和进程管理,不建议使用外部进程管理工具(如 Supervisor)。 - **依赖管理**:参考 requirements.txt 确保依赖版本与测试环境一致。 如遇问题,请提交至 GitHub 仓库 [https://github.com/Koed00/django-q]。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 60 页请下载阅读 -
文档评分
请文明评论,理性发言.