epub文档 Django Q Documentation Release 0.6.4

512.86 KB 53 页 0 评论
语言 格式 评分
英语
.epub
3
摘要
Django Q是一个原生Django任务队列、调度器和工作者应用,使用Python多处理来管理任务。其核心功能包括处理异步任务、定时任务和重复任务,支持加密和压缩的数据包,并提供成功和失败任务的数据库记录。Django Q通过Django Admin提供管理界面,支持多种消息代理如Redis、Disque、IronMQ和SQS,并在多个平台上兼容。配置选项包括工作者数量、任务回收、超时设置和异常处理等。文档还提供了安装要求、配置示例和使用实例,如在发送电子邮件和信号处理中的应用。
AI总结
# 《Django Q Documentation Release 0.6.4》总结 ## 项目概述 Django Q 是一个原生 Django 任务队列、调度器和 worker 应用程序,使用 Python 多进程技术。其主要特性包括: - 多进程 worker 集群 - 异步任务、定时任务和重复任务 - 加密和压缩功能 - 失败与成功数据库记录 - 结果钩子和组别 -集成 Django Admin 界面 - 多实例、多集群监控 - 支持 Redis、Disque、IronMQ 或 SQS -兼容 Python 2 和 3 ## 安装与配置 1. **安装**: - 使用 pip 安装:`pip install django-q` - 添加 `django_q` 到 `INSTALLED_APPS` - 运行 Django 数据库迁移:`python manage.py migrate` - 选择并配置消息 broker(如 Redis、Disque 等) 2. **配置**: - 通过 `settings.py` 中的 `Q_CLUSTER` 字典配置。 - 主要配置项包括: - `name`:项目名称,默认为 'default' - `workers`:worker 数量,默认为主机 CPU 核数 - `recycle`:worker 处理任务数后重启,默认 500 - `timeout`:任务超时时间(秒),默认 60 - `redis`:Redis 配置(如 host、port、db) ## 管理界面 Django Q 在 Django Admin 中提供三个模型: 1. **成功任务**:显示所有成功执行的任务,可按名称、func 或组筛选,默认最多保存 `save_limit` 个任务。 2. **失败任务**:显示因错误未完成的任务,可重提交,查看错误详情。 3. **定时任务**:显示所有调度任务,可查看调度结果。 ## 使用示例 1. **异步任务**: ```python from django_q import async async('django.core.mail.send_mail', '主题', '内容', 'from@example.com', [user.email]) ``` 2. **定时任务**: ```python from django.utils import timezone from django_q import schedule 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)) ``` 3. **信号触发异步任务**: ```python from django.db.models.signals import pre_save from django.dispatch import receiver from django_q import async @receiver(pre_save, sender=User) def user_pre_save(sender, instance, **kwargs): async('some.task', instance) ``` ## 技术要求 - Python 2.7 与 3.4 测试通过 - Django 版本:1.7.10 与 1.8.4 测试通过 - 依赖项: - `django-picklefield`:用于存储任务参数和结果 - `arrow`:用于任务调度 - `blessed`:用于终端布局 ## 注意事项 1. **任务加密**:不可解密的任务将被丢弃或标记为失败。 2. **队列大小**:可通过 `queue_limit` 配置,避免队列无限增长。 3. **Redis 兼容性**:`queue.qsize()` 在 OS X 上不可用,始终返回 0。 ## 开发与反馈 - 开発者:Ilan Steemers - 文档生成工具:Sphinx 1.3.1 - 版权:2015 Ilan Steemers
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 46 页请下载阅读 -
文档评分
请文明评论,理性发言.