taskmanager-hjy


Nametaskmanager-hjy JSON
Version 0.4.4 PyPI version JSON
download
home_pagehttps://github.com/hjy/taskmanager-hjy
Summary完全独立的任务管理包 - 基于新包架构,无旧包依赖
upload_time2025-08-18 07:49:33
maintainerNone
docs_urlNone
authorhjy
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # TaskManager-HJY

🚀 **完全独立的任务管理包 - 基于新包架构,无旧包依赖**

版本: 0.4.0  
作者: hjy

## 📋 简介

TaskManager-HJY 是一个完全独立的任务管理包,基于新的包架构设计,不依赖任何旧包(如 `ai_runner_hjy` 或 `keymaster_hjy`)。该包提供了完整的任务创建、执行、监控和管理功能。

## ✨ 特性

- 🆕 **完全独立**: 不依赖任何旧包,基于新包架构
- 🚀 **异步支持**: 支持异步任务执行
- 📊 **任务监控**: 实时任务状态和进度跟踪
- 🎯 **多种任务类型**: 支持音频分析、数据处理、AI推理等
- 🔧 **灵活配置**: 支持任务优先级和自定义参数
- 📈 **统计功能**: 提供详细的任务统计信息
- 🛠️ **CLI工具**: 内置命令行工具,方便使用

## 📦 安装

```bash
pip install taskmanager-hjy==0.4.0
```

## 🔧 依赖

- `pydantic>=2.0.0` - 数据验证
- `loguru>=0.7.0` - 日志记录
- `redis>=4.5.0` - 缓存支持
- `rq>=1.15.0` - 任务队列
- `pyyaml>=6.0` - 配置文件支持
- `typing-extensions>=4.0.0` - 类型提示扩展

### 新包依赖(可选)

- `configmanager-hjy>=0.3.0` - 配置管理
- `datamanager-hjy>=0.3.0` - 数据管理
- `aimanager-hjy>=0.3.0` - AI管理
- `keymanager-hjy>=0.3.0` - 密钥管理

## 🚀 快速开始

### 基本使用

```python
import asyncio
from taskmanager_hjy import TaskManager, TaskType, TaskPriority

# 创建任务管理器
manager = TaskManager()

# 创建任务
task = manager.create_task(
    name="音频分析任务",
    task_type=TaskType.AUDIO_ANALYSIS,
    parameters={"file_path": "/path/to/audio.wav"},
    priority=TaskPriority.HIGH
)

# 执行任务
async def main():
    success = await manager.execute_task(task.id)
    if success:
        print("任务执行成功!")
    
    # 获取任务信息
    task_info = manager.get_task(task.id)
    print(f"任务状态: {task_info.status}")
    print(f"任务结果: {task_info.result}")

asyncio.run(main())
```

### 便捷函数使用

```python
import asyncio
from taskmanager_hjy import create_task, execute_task, get_task, list_tasks

# 创建任务
task = create_task("数据处理任务", TaskType.DATA_PROCESSING)

# 执行任务
async def main():
    await execute_task(task.id)
    
    # 列出所有任务
    all_tasks = list_tasks()
    print(f"总任务数: {len(all_tasks)}")
    
    # 列出待执行任务
    pending_tasks = list_tasks(status=TaskStatus.PENDING)
    print(f"待执行任务数: {len(pending_tasks)}")

asyncio.run(main())
```

## 🛠️ 命令行工具

TaskManager-HJY 提供了完整的命令行工具:

```bash
# 创建任务
python -m taskmanager_hjy create "测试任务" audio_analysis

# 列出任务
python -m taskmanager_hjy list pending

# 执行任务
python -m taskmanager_hjy execute task_20241201_12345678_abc12345

# 获取统计信息
python -m taskmanager_hjy stats

# 查看帮助
python -m taskmanager_hjy help
```

## 📊 任务类型

| 类型 | 描述 | 示例 |
|------|------|------|
| `AUDIO_ANALYSIS` | 音频分析 | 语音识别、音频特征提取 |
| `DATA_PROCESSING` | 数据处理 | 数据清洗、格式转换 |
| `AI_INFERENCE` | AI推理 | 模型预测、图像识别 |
| `SYSTEM_MAINTENANCE` | 系统维护 | 日志清理、缓存更新 |
| `CUSTOM` | 自定义任务 | 用户自定义逻辑 |

## 🎯 任务状态

| 状态 | 描述 |
|------|------|
| `PENDING` | 待执行 |
| `RUNNING` | 执行中 |
| `COMPLETED` | 已完成 |
| `FAILED` | 失败 |
| `CANCELLED` | 已取消 |

## 🔝 任务优先级

| 优先级 | 描述 |
|--------|------|
| `LOW` | 低优先级 |
| `NORMAL` | 普通优先级 |
| `HIGH` | 高优先级 |
| `URGENT` | 紧急优先级 |

## 📈 统计功能

```python
from taskmanager_hjy import get_task_statistics

stats = get_task_statistics()
print(f"总任务数: {stats['total_tasks']}")
print(f"完成率: {stats['success_rate']:.2f}%")
print(f"运行中任务: {stats['running_tasks']}")
```

## 🔧 高级功能

### 任务取消

```python
from taskmanager_hjy import cancel_task

success = cancel_task(task_id)
if success:
    print("任务取消成功")
```

### 批量操作

```python
from taskmanager_hjy import TaskManager, TaskStatus

manager = TaskManager()

# 批量创建任务
for i in range(5):
    manager.create_task(f"批量任务 {i+1}", TaskType.DATA_PROCESSING)

# 批量执行待执行任务
pending_tasks = manager.list_tasks(status=TaskStatus.PENDING)
for task in pending_tasks:
    await manager.execute_task(task.id)
```

## 🏗️ 架构设计

TaskManager-HJY 采用模块化设计:

```
taskmanager_hjy/
├── __init__.py          # 包入口
├── core/
│   ├── models.py        # 数据模型
│   ├── manager.py       # 核心管理器
│   └── utils.py         # 工具函数
└── cli.py              # 命令行工具
```

## 🔄 版本历史

- **0.4.0** - 完全独立版本,移除所有旧包依赖
- **0.3.0** - 基础版本(已废弃)

## 📝 许可证

MIT License

## 🤝 贡献

欢迎提交 Issue 和 Pull Request!

## 📞 支持

如有问题,请通过以下方式联系:

- 提交 GitHub Issue
- 发送邮件至: hjy@example.com

---

**注意**: 此版本完全独立,不依赖任何旧包,确保与现有系统的兼容性。



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hjy/taskmanager-hjy",
    "name": "taskmanager-hjy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "hjy",
    "author_email": "hjy@example.com",
    "download_url": "https://files.pythonhosted.org/packages/6a/e8/9b48b0380a8cbe134742ee09801ba48e5cd481aee4a89baef332418735fa/taskmanager-hjy-0.4.4.tar.gz",
    "platform": null,
    "description": "# TaskManager-HJY\n\n\ud83d\ude80 **\u5b8c\u5168\u72ec\u7acb\u7684\u4efb\u52a1\u7ba1\u7406\u5305 - \u57fa\u4e8e\u65b0\u5305\u67b6\u6784\uff0c\u65e0\u65e7\u5305\u4f9d\u8d56**\n\n\u7248\u672c: 0.4.0  \n\u4f5c\u8005: hjy\n\n## \ud83d\udccb \u7b80\u4ecb\n\nTaskManager-HJY \u662f\u4e00\u4e2a\u5b8c\u5168\u72ec\u7acb\u7684\u4efb\u52a1\u7ba1\u7406\u5305\uff0c\u57fa\u4e8e\u65b0\u7684\u5305\u67b6\u6784\u8bbe\u8ba1\uff0c\u4e0d\u4f9d\u8d56\u4efb\u4f55\u65e7\u5305\uff08\u5982 `ai_runner_hjy` \u6216 `keymaster_hjy`\uff09\u3002\u8be5\u5305\u63d0\u4f9b\u4e86\u5b8c\u6574\u7684\u4efb\u52a1\u521b\u5efa\u3001\u6267\u884c\u3001\u76d1\u63a7\u548c\u7ba1\u7406\u529f\u80fd\u3002\n\n## \u2728 \u7279\u6027\n\n- \ud83c\udd95 **\u5b8c\u5168\u72ec\u7acb**: \u4e0d\u4f9d\u8d56\u4efb\u4f55\u65e7\u5305\uff0c\u57fa\u4e8e\u65b0\u5305\u67b6\u6784\n- \ud83d\ude80 **\u5f02\u6b65\u652f\u6301**: \u652f\u6301\u5f02\u6b65\u4efb\u52a1\u6267\u884c\n- \ud83d\udcca **\u4efb\u52a1\u76d1\u63a7**: \u5b9e\u65f6\u4efb\u52a1\u72b6\u6001\u548c\u8fdb\u5ea6\u8ddf\u8e2a\n- \ud83c\udfaf **\u591a\u79cd\u4efb\u52a1\u7c7b\u578b**: \u652f\u6301\u97f3\u9891\u5206\u6790\u3001\u6570\u636e\u5904\u7406\u3001AI\u63a8\u7406\u7b49\n- \ud83d\udd27 **\u7075\u6d3b\u914d\u7f6e**: \u652f\u6301\u4efb\u52a1\u4f18\u5148\u7ea7\u548c\u81ea\u5b9a\u4e49\u53c2\u6570\n- \ud83d\udcc8 **\u7edf\u8ba1\u529f\u80fd**: \u63d0\u4f9b\u8be6\u7ec6\u7684\u4efb\u52a1\u7edf\u8ba1\u4fe1\u606f\n- \ud83d\udee0\ufe0f **CLI\u5de5\u5177**: \u5185\u7f6e\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u65b9\u4fbf\u4f7f\u7528\n\n## \ud83d\udce6 \u5b89\u88c5\n\n```bash\npip install taskmanager-hjy==0.4.0\n```\n\n## \ud83d\udd27 \u4f9d\u8d56\n\n- `pydantic>=2.0.0` - \u6570\u636e\u9a8c\u8bc1\n- `loguru>=0.7.0` - \u65e5\u5fd7\u8bb0\u5f55\n- `redis>=4.5.0` - \u7f13\u5b58\u652f\u6301\n- `rq>=1.15.0` - \u4efb\u52a1\u961f\u5217\n- `pyyaml>=6.0` - \u914d\u7f6e\u6587\u4ef6\u652f\u6301\n- `typing-extensions>=4.0.0` - \u7c7b\u578b\u63d0\u793a\u6269\u5c55\n\n### \u65b0\u5305\u4f9d\u8d56\uff08\u53ef\u9009\uff09\n\n- `configmanager-hjy>=0.3.0` - \u914d\u7f6e\u7ba1\u7406\n- `datamanager-hjy>=0.3.0` - \u6570\u636e\u7ba1\u7406\n- `aimanager-hjy>=0.3.0` - AI\u7ba1\u7406\n- `keymanager-hjy>=0.3.0` - \u5bc6\u94a5\u7ba1\u7406\n\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n### \u57fa\u672c\u4f7f\u7528\n\n```python\nimport asyncio\nfrom taskmanager_hjy import TaskManager, TaskType, TaskPriority\n\n# \u521b\u5efa\u4efb\u52a1\u7ba1\u7406\u5668\nmanager = TaskManager()\n\n# \u521b\u5efa\u4efb\u52a1\ntask = manager.create_task(\n    name=\"\u97f3\u9891\u5206\u6790\u4efb\u52a1\",\n    task_type=TaskType.AUDIO_ANALYSIS,\n    parameters={\"file_path\": \"/path/to/audio.wav\"},\n    priority=TaskPriority.HIGH\n)\n\n# \u6267\u884c\u4efb\u52a1\nasync def main():\n    success = await manager.execute_task(task.id)\n    if success:\n        print(\"\u4efb\u52a1\u6267\u884c\u6210\u529f!\")\n    \n    # \u83b7\u53d6\u4efb\u52a1\u4fe1\u606f\n    task_info = manager.get_task(task.id)\n    print(f\"\u4efb\u52a1\u72b6\u6001: {task_info.status}\")\n    print(f\"\u4efb\u52a1\u7ed3\u679c: {task_info.result}\")\n\nasyncio.run(main())\n```\n\n### \u4fbf\u6377\u51fd\u6570\u4f7f\u7528\n\n```python\nimport asyncio\nfrom taskmanager_hjy import create_task, execute_task, get_task, list_tasks\n\n# \u521b\u5efa\u4efb\u52a1\ntask = create_task(\"\u6570\u636e\u5904\u7406\u4efb\u52a1\", TaskType.DATA_PROCESSING)\n\n# \u6267\u884c\u4efb\u52a1\nasync def main():\n    await execute_task(task.id)\n    \n    # \u5217\u51fa\u6240\u6709\u4efb\u52a1\n    all_tasks = list_tasks()\n    print(f\"\u603b\u4efb\u52a1\u6570: {len(all_tasks)}\")\n    \n    # \u5217\u51fa\u5f85\u6267\u884c\u4efb\u52a1\n    pending_tasks = list_tasks(status=TaskStatus.PENDING)\n    print(f\"\u5f85\u6267\u884c\u4efb\u52a1\u6570: {len(pending_tasks)}\")\n\nasyncio.run(main())\n```\n\n## \ud83d\udee0\ufe0f \u547d\u4ee4\u884c\u5de5\u5177\n\nTaskManager-HJY \u63d0\u4f9b\u4e86\u5b8c\u6574\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff1a\n\n```bash\n# \u521b\u5efa\u4efb\u52a1\npython -m taskmanager_hjy create \"\u6d4b\u8bd5\u4efb\u52a1\" audio_analysis\n\n# \u5217\u51fa\u4efb\u52a1\npython -m taskmanager_hjy list pending\n\n# \u6267\u884c\u4efb\u52a1\npython -m taskmanager_hjy execute task_20241201_12345678_abc12345\n\n# \u83b7\u53d6\u7edf\u8ba1\u4fe1\u606f\npython -m taskmanager_hjy stats\n\n# \u67e5\u770b\u5e2e\u52a9\npython -m taskmanager_hjy help\n```\n\n## \ud83d\udcca \u4efb\u52a1\u7c7b\u578b\n\n| \u7c7b\u578b | \u63cf\u8ff0 | \u793a\u4f8b |\n|------|------|------|\n| `AUDIO_ANALYSIS` | \u97f3\u9891\u5206\u6790 | \u8bed\u97f3\u8bc6\u522b\u3001\u97f3\u9891\u7279\u5f81\u63d0\u53d6 |\n| `DATA_PROCESSING` | \u6570\u636e\u5904\u7406 | \u6570\u636e\u6e05\u6d17\u3001\u683c\u5f0f\u8f6c\u6362 |\n| `AI_INFERENCE` | AI\u63a8\u7406 | \u6a21\u578b\u9884\u6d4b\u3001\u56fe\u50cf\u8bc6\u522b |\n| `SYSTEM_MAINTENANCE` | \u7cfb\u7edf\u7ef4\u62a4 | \u65e5\u5fd7\u6e05\u7406\u3001\u7f13\u5b58\u66f4\u65b0 |\n| `CUSTOM` | \u81ea\u5b9a\u4e49\u4efb\u52a1 | \u7528\u6237\u81ea\u5b9a\u4e49\u903b\u8f91 |\n\n## \ud83c\udfaf \u4efb\u52a1\u72b6\u6001\n\n| \u72b6\u6001 | \u63cf\u8ff0 |\n|------|------|\n| `PENDING` | \u5f85\u6267\u884c |\n| `RUNNING` | \u6267\u884c\u4e2d |\n| `COMPLETED` | \u5df2\u5b8c\u6210 |\n| `FAILED` | \u5931\u8d25 |\n| `CANCELLED` | \u5df2\u53d6\u6d88 |\n\n## \ud83d\udd1d \u4efb\u52a1\u4f18\u5148\u7ea7\n\n| \u4f18\u5148\u7ea7 | \u63cf\u8ff0 |\n|--------|------|\n| `LOW` | \u4f4e\u4f18\u5148\u7ea7 |\n| `NORMAL` | \u666e\u901a\u4f18\u5148\u7ea7 |\n| `HIGH` | \u9ad8\u4f18\u5148\u7ea7 |\n| `URGENT` | \u7d27\u6025\u4f18\u5148\u7ea7 |\n\n## \ud83d\udcc8 \u7edf\u8ba1\u529f\u80fd\n\n```python\nfrom taskmanager_hjy import get_task_statistics\n\nstats = get_task_statistics()\nprint(f\"\u603b\u4efb\u52a1\u6570: {stats['total_tasks']}\")\nprint(f\"\u5b8c\u6210\u7387: {stats['success_rate']:.2f}%\")\nprint(f\"\u8fd0\u884c\u4e2d\u4efb\u52a1: {stats['running_tasks']}\")\n```\n\n## \ud83d\udd27 \u9ad8\u7ea7\u529f\u80fd\n\n### \u4efb\u52a1\u53d6\u6d88\n\n```python\nfrom taskmanager_hjy import cancel_task\n\nsuccess = cancel_task(task_id)\nif success:\n    print(\"\u4efb\u52a1\u53d6\u6d88\u6210\u529f\")\n```\n\n### \u6279\u91cf\u64cd\u4f5c\n\n```python\nfrom taskmanager_hjy import TaskManager, TaskStatus\n\nmanager = TaskManager()\n\n# \u6279\u91cf\u521b\u5efa\u4efb\u52a1\nfor i in range(5):\n    manager.create_task(f\"\u6279\u91cf\u4efb\u52a1 {i+1}\", TaskType.DATA_PROCESSING)\n\n# \u6279\u91cf\u6267\u884c\u5f85\u6267\u884c\u4efb\u52a1\npending_tasks = manager.list_tasks(status=TaskStatus.PENDING)\nfor task in pending_tasks:\n    await manager.execute_task(task.id)\n```\n\n## \ud83c\udfd7\ufe0f \u67b6\u6784\u8bbe\u8ba1\n\nTaskManager-HJY \u91c7\u7528\u6a21\u5757\u5316\u8bbe\u8ba1\uff1a\n\n```\ntaskmanager_hjy/\n\u251c\u2500\u2500 __init__.py          # \u5305\u5165\u53e3\n\u251c\u2500\u2500 core/\n\u2502   \u251c\u2500\u2500 models.py        # \u6570\u636e\u6a21\u578b\n\u2502   \u251c\u2500\u2500 manager.py       # \u6838\u5fc3\u7ba1\u7406\u5668\n\u2502   \u2514\u2500\u2500 utils.py         # \u5de5\u5177\u51fd\u6570\n\u2514\u2500\u2500 cli.py              # \u547d\u4ee4\u884c\u5de5\u5177\n```\n\n## \ud83d\udd04 \u7248\u672c\u5386\u53f2\n\n- **0.4.0** - \u5b8c\u5168\u72ec\u7acb\u7248\u672c\uff0c\u79fb\u9664\u6240\u6709\u65e7\u5305\u4f9d\u8d56\n- **0.3.0** - \u57fa\u7840\u7248\u672c\uff08\u5df2\u5e9f\u5f03\uff09\n\n## \ud83d\udcdd \u8bb8\u53ef\u8bc1\n\nMIT License\n\n## \ud83e\udd1d \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4 Issue \u548c Pull Request\uff01\n\n## \ud83d\udcde \u652f\u6301\n\n\u5982\u6709\u95ee\u9898\uff0c\u8bf7\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8054\u7cfb\uff1a\n\n- \u63d0\u4ea4 GitHub Issue\n- \u53d1\u9001\u90ae\u4ef6\u81f3: hjy@example.com\n\n---\n\n**\u6ce8\u610f**: \u6b64\u7248\u672c\u5b8c\u5168\u72ec\u7acb\uff0c\u4e0d\u4f9d\u8d56\u4efb\u4f55\u65e7\u5305\uff0c\u786e\u4fdd\u4e0e\u73b0\u6709\u7cfb\u7edf\u7684\u517c\u5bb9\u6027\u3002\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u5b8c\u5168\u72ec\u7acb\u7684\u4efb\u52a1\u7ba1\u7406\u5305 - \u57fa\u4e8e\u65b0\u5305\u67b6\u6784\uff0c\u65e0\u65e7\u5305\u4f9d\u8d56",
    "version": "0.4.4",
    "project_urls": {
        "Homepage": "https://github.com/hjy/taskmanager-hjy"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "468a5173bff62b7ad0216926acf7eef9cdc7cf5b981926301a1fdc996a3b2736",
                "md5": "ecf0ef663916b19c60a84427e9363c77",
                "sha256": "ac568ef380ad34186131ae2da13f2b06aa48d84b5b02c1e0569ceae05e6429ee"
            },
            "downloads": -1,
            "filename": "taskmanager_hjy-0.4.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ecf0ef663916b19c60a84427e9363c77",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12446,
            "upload_time": "2025-08-18T07:49:32",
            "upload_time_iso_8601": "2025-08-18T07:49:32.402366Z",
            "url": "https://files.pythonhosted.org/packages/46/8a/5173bff62b7ad0216926acf7eef9cdc7cf5b981926301a1fdc996a3b2736/taskmanager_hjy-0.4.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6ae89b48b0380a8cbe134742ee09801ba48e5cd481aee4a89baef332418735fa",
                "md5": "65b9cb1d69846fb7122d9043eb48e1c5",
                "sha256": "8019a1f0b9d4aae8557c60d1aa723fc75d3a0fe4a345d2ec0505d333500b96f7"
            },
            "downloads": -1,
            "filename": "taskmanager-hjy-0.4.4.tar.gz",
            "has_sig": false,
            "md5_digest": "65b9cb1d69846fb7122d9043eb48e1c5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 11930,
            "upload_time": "2025-08-18T07:49:33",
            "upload_time_iso_8601": "2025-08-18T07:49:33.872106Z",
            "url": "https://files.pythonhosted.org/packages/6a/e8/9b48b0380a8cbe134742ee09801ba48e5cd481aee4a89baef332418735fa/taskmanager-hjy-0.4.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-18 07:49:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hjy",
    "github_project": "taskmanager-hjy",
    "github_not_found": true,
    "lcname": "taskmanager-hjy"
}
        
hjy
Elapsed time: 1.13751s