基于RQ + ai_runner_hjy + 云Redis的通用任务管理解决方案,让异步任务处理变得毫不费力
Project description
taskmanager_hjy
一句话宣言: 基于RQ + Redis的通用任务管理解决方案,支持子任务嵌套,让异步任务处理变得毫不费力。
🎯 优雅的"Hello, World"
from taskmanager_hjy import TaskManager
# 三行代码,启动任务管理
task_manager = TaskManager()
task_id = task_manager.create_task("data_processing", {"input_file": "data.csv"})
result = task_manager.get_result(task_id)
print(f"🎉 任务完成: {result}")
✨ 为什么选择 taskmanager_hjy?
🚀 零摩擦体验
- 一键安装:
pip install taskmanager-hjy - 零配置启动: 自动检测环境,智能配置
- 所见即所得: README中的示例代码可直接运行
🎨 苹果产品级设计
- 高内聚低耦合: 内部复杂,接口简洁
- 类型安全: 完整的类型提示,IDE友好
- 优雅错误处理: 人类可读的错误信息
🌟 云原生公民
- 配置即插即用: 外置配置,依赖注入
- 生命周期管理: 完整的启动、运行、关闭控制
- 健康检查: 实时监控,自动恢复
🔄 子任务嵌套
- 任务嵌套: 支持主任务包含多个子任务
- 依赖关系: 子任务之间可以有依赖关系
- 并行处理: 支持子任务并行执行
- 状态同步: 子任务状态变化同步到主任务
- 灵活执行: 支持串行、并行、条件依赖等多种执行模式
🚀 快速开始
安装
pip install taskmanager-hjy
基本使用
from taskmanager_hjy import TaskManager
# 创建任务管理器
task_manager = TaskManager()
# 创建数据处理任务
task_id = task_manager.create_task(
task_type="data_processing",
input_data={
"input_file": "data.csv",
"output_format": "json"
},
user_id="user_123"
)
# 查询状态
status = task_manager.get_status(task_id)
print(f"任务状态: {status}")
# 获取结果
result = task_manager.get_result(task_id)
print(f"处理结果: {result}")
高级功能
# 优先级管理
high_priority_task = task_manager.create_task(
task_type="data_processing",
input_data={"input_file": "urgent_data.csv"},
priority=3 # 高优先级
)
# 子任务管理
subtask_id = task_manager.create_subtask(
parent_task_id=task_id,
task_type="data_validation",
input_data={"validation_rules": "schema.json"}
)
# 批量处理
task_ids = task_manager.batch_create([
{"input_file": f"data_{i}.csv"}
for i in range(5)
])
# 复杂工作流
workflow_id = task_manager.create_task("workflow", {"name": "数据处理流程"})
task_manager.create_subtask(workflow_id, "data_validation", {"rules": "schema.json"})
task_manager.create_subtask(workflow_id, "data_cleaning", {"rules": "cleaning.yaml"})
task_manager.create_subtask(workflow_id, "data_analysis", {"type": "statistical"})
task_manager.create_subtask(workflow_id, "report_generation", {"format": "pdf"})
🔧 配置即插即用
# 简单配置
config = {
"redis": {
"url": "redis://localhost:6379/0"
},
"tasks": {
"audio_analysis": {
"timeout": 300,
"max_retry": 3
}
}
}
task_manager = TaskManager(config=config)
📊 性能指标
- 任务创建: < 100ms
- 状态查询: < 50ms
- AI服务调用: < 500ms
- 并发支持: 1000+ 任务/秒
- 内存使用: 优化的连接池管理
- 子任务支持: 无限层级嵌套
- 依赖处理: 复杂依赖关系自动解析
🎯 支持的任务类型
内置任务类型
- base: 基础任务类型
- custom: 自定义任务类型
- data_processing: 数据处理任务(示例)
扩展任务类型
from taskmanager_hjy import BaseTask
class ImageProcessingTask(BaseTask):
def execute(self, input_data):
# 图像处理逻辑
return {"result": "image_processed"}
class EmailSendingTask(BaseTask):
def execute(self, input_data):
# 邮件发送逻辑
return {"result": "email_sent"}
# 注册自定义任务
task_manager.register_task_type("image_processing", ImageProcessingTask)
task_manager.register_task_type("email_sending", EmailSendingTask)
🔒 安全特性
- 连接加密: Redis SSL/TLS 支持
- 认证机制: API Key 和用户权限管理
- 数据隔离: 基于用户ID的任务隔离
- 审计日志: 完整的操作记录
🧪 测试覆盖
# 运行测试
pytest tests/
# 覆盖率报告
pytest --cov=taskmanager_hjy tests/
# 性能测试
pytest tests/test_performance.py
📚 文档
- API文档: 完整的API参考
- 开发者指南: 架构设计和开发指南
- 示例代码: 丰富的使用示例
- Hello World: 三行代码快速开始
- 简单子任务: 基础嵌套功能展示
- 复杂子任务: 完整工作流演示
- 高级功能: 优先级和批量处理
- 最佳实践: 生产环境部署指南
🤝 贡献
我们欢迎所有形式的贡献!
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
🆘 支持
- 文档: https://taskmanager-hjy.readthedocs.io/
- Issues: GitHub Issues
- 讨论: GitHub Discussions
- 邮箱: hjy@example.com
taskmanager_hjy - 让异步任务处理变得毫不费力 ✨
"产品越是简单,内里逻辑越是复杂。" - 史蒂夫·乔布斯
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
taskmanager_hjy-0.3.0.tar.gz
(52.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file taskmanager_hjy-0.3.0.tar.gz.
File metadata
- Download URL: taskmanager_hjy-0.3.0.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46e562a5b2c0af3e00e15f032ce3b5be0416115f55a7e959c7738eb955fca97c
|
|
| MD5 |
04c1fddeab6b365a79b61effe8c90c16
|
|
| BLAKE2b-256 |
0b762235243a088785f98af6224e009b9387ff25cc43fe112f7a516dfd40b75f
|
File details
Details for the file taskmanager_hjy-0.3.0-py3-none-any.whl.
File metadata
- Download URL: taskmanager_hjy-0.3.0-py3-none-any.whl
- Upload date:
- Size: 48.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd7b9e3c20110098c319fe90d3259540f6f39156315cff9cf0aaf54d5f81c88a
|
|
| MD5 |
c589d640ca127a093d701aa49a5c41ce
|
|
| BLAKE2b-256 |
dcb29daa42a3cbd589149aaff2cdc67e0a3e329bfb950e430fc4fbd977e05d28
|