# 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"
}