Skip to main content

基于RQ + ai_runner_hjy + 云Redis的通用任务管理解决方案,让异步任务处理变得毫不费力

Project description

taskmanager_hjy

CI Status Python Version License PyPI Version

一句话宣言: 基于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

📚 文档

🤝 贡献

我们欢迎所有形式的贡献!

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🆘 支持


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.0.1.tar.gz (52.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

taskmanager_hjy-0.0.1-py3-none-any.whl (48.0 kB view details)

Uploaded Python 3

File details

Details for the file taskmanager_hjy-0.0.1.tar.gz.

File metadata

  • Download URL: taskmanager_hjy-0.0.1.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

Hashes for taskmanager_hjy-0.0.1.tar.gz
Algorithm Hash digest
SHA256 34e6cf317109a6398a424730e6150180e2ebe8bf764a6e52756835f5b0013ec0
MD5 6e132f391a7858aaa2f49c5f44bb9e90
BLAKE2b-256 836a98227e5bdb82899c565128878dc7d75187911c7e3396a0995410b8f866ad

See more details on using hashes here.

File details

Details for the file taskmanager_hjy-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for taskmanager_hjy-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 425674323154db1db584d1bec342724a69d95020282bb188ee2dd8aaf3df1fdc
MD5 c65f6fa05c889baba09384d21d3f66ca
BLAKE2b-256 9e431290608a6e97cee9d197a28223ac961a562720d299159489c97e2834438a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page