logo
0
0
WeChat Login

Vector Task Management System

一个基于 Python 的分布式任务管理和调度系统,支持多种数据源提供者和灵活的任务调度配置。

🚀 特性

  • 分布式任务调度: 基于 Cron 表达式的灵活任务调度
  • 多提供者支持: 支持多种数据源和服务提供者
  • 实时监控: 完整的任务执行状态跟踪和日志记录
  • RESTful API: 完整的 REST API 接口用于任务管理
  • 高可用性: 支持任务重试、超时控制和并发限制
  • 容器化部署: 完整的 Docker 和 Docker Compose 支持
  • 数据持久化: MongoDB 数据存储和 Redis 缓存支持

📋 系统要求

  • Python 3.8+
  • MongoDB 7.0+
  • Redis 7.0+
  • Docker & Docker Compose (可选)

🛠️ 安装部署

方式一:Docker Compose (推荐)

  1. 克隆项目
git clone <repository-url> cd vector-task-management
  1. 配置环境变量
cp .env.example .env # 编辑 .env 文件配置数据库连接等参数
  1. 启动服务
docker-compose up -d
  1. 验证部署
# HTTP (会自动跳转到 HTTPS) curl -I http://localhost/health # HTTPS curl -k https://localhost/health

方式二:本地安装

  1. 安装依赖
pip install -r requirements.txt
  1. 配置环境变量
export MONGO_URL="mongodb://localhost:27017/vector" export REDIS_URL="redis://localhost:6379/0" export APP_HOST="0.0.0.0" export APP_PORT="8000"
  1. 启动应用
python main.py

📖 API 文档

基础信息

  • Base URL: http://localhost:8000
  • API 前缀: /api
  • 响应格式: JSON

任务管理 API

创建任务

POST /api/tasks Content-Type: application/json { "task_name": "示例任务", "schedule_expression": "0 */5 * * *", "enabled": true, "max_instances": 1, "retry_count": 3, "retry_delay": 60, "timeout": 300, "config": { "provider_type": "tester", "provider_data": { "test_param": "value" } } }

获取任务列表

GET /api/tasks?page=1&page_size=20&enabled_only=true

获取任务详情

GET /api/tasks/{task_id}

更新任务

POST /api/tasks/{task_id}/update Content-Type: application/json { "enabled": false, "schedule_expression": "0 0 * * *" }

手动执行任务

POST /api/tasks/{task_id}/execute

删除任务

DELETE /api/tasks/{task_id}

Provider 管理 API

获取所有 Providers

GET /api/providers

获取特定 Provider 详情

GET /api/providers/{provider_name}

创建新 Provider

POST /api/providers Content-Type: application/json { "name": "my_provider", "description": "My custom provider", "code": "# Python provider code here" }

更新 Provider

PUT /api/providers/{provider_name} Content-Type: application/json { "description": "Updated description", "code": "# Updated Python code" }

基于模板创建 Provider

POST /api/providers/from-template Content-Type: application/json { "name": "weather_provider", "description": "Weather information provider", "custom_handler": "# Custom handler code" }

测试 Provider

POST /api/providers/{provider_name}/test Content-Type: application/json { "config": { "test_param": "value" } }

认证 API

用户登录

GET /api/auth/login

执行记录 API

获取执行记录

GET /api/executions?task_id={task_id}&status=success&page=1&page_size=20

获取执行详情

GET /api/executions/{execution_id}

统计信息 API

获取任务统计

GET /api/stats/tasks

清理历史记录

POST /api/stats/cleanup

🔧 配置说明

环境变量

数据库配置

变量名描述默认值
MONGO_URLMongoDB 连接字符串mongodb://localhost:27017/vector
MONGO_ROOT_USERNAMEMongoDB 根用户名admin
MONGO_ROOT_PASSWORDMongoDB 根密码password
MONGO_DATABASEMongoDB 数据库名vector
MONGO_PORTMongoDB 端口27017
REDIS_URLRedis 连接字符串redis://localhost:6379/0
REDIS_PORTRedis 端口6379

应用配置

变量名描述默认值
APP_HOST应用监听地址0.0.0.0
APP_PORT应用监听端口8000
APP_DEBUG调试模式false
APP_SECRET应用密钥your-secret-key-here

调度器配置

变量名描述默认值
SCHEDULER_TIMEZONE调度器时区UTC
SCHEDULER_MAX_INSTANCES最大并发实例数3
SCHEDULER_COALESCE合并延迟执行false

认证配置

变量名描述默认值
JWT_SECRET_KEYJWT 密钥your-jwt-secret-key
JWT_ACCESS_TOKEN_EXPIRES访问令牌过期时间(分钟)15
JWT_REFRESH_TOKEN_EXPIRES刷新令牌过期时间(天)30

任务配置

Cron 表达式格式

* * * * * │ │ │ │ │ │ │ │ │ └─── 星期几 (0-7, 0和7都表示周日) │ │ │ └───── 月份 (1-12) │ │ └─────── 日期 (1-31) │ └───────── 小时 (0-23) └─────────── 分钟 (0-59)

常用 Cron 表达式示例

  • 0 */5 * * * - 每5分钟执行一次
  • 0 0 * * * - 每天午夜执行
  • 0 9 * * 1-5 - 工作日上午9点执行
  • 0 0 1 * * - 每月1号执行

📄 许可证

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

📞 支持

如有问题或建议,请:

  1. 查看 Issues 页面
  2. 创建新的 Issue
  3. 联系项目维护者

Vector Task Management System - 让任务调度更简单、更可靠!

About

No description, topics, or website provided.
1.90 MiB
0 forks0 stars1 branches0 TagREADMEMIT license
Language
Python99.5%
HTML0.4%
Dockerfile0.1%