# taskpyro **Repository Path**: taskPyroer/taskpyrodocker ## Basic Information - **Project Name**: taskpyro - **Description**: 爬虫管理系统,爬虫管理平台,可视化操作,完整监控,灵活的Python环境管理,,环境隔离,资源占用小,支持 Scrapy 等主流爬虫框架,支持 Selenium、Playwright、DrissionPage 等浏览器自动化工具,支持node环境下的js逆向代码 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: https://docs.taskpyro.cn/ - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 1 - **Created**: 2025-02-28 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, Web, Selenium, playwright ## README ## TaskPyro 是什么? TaskPyro 是一个轻量级的 Python 任务调度平台,专注于提供简单易用的任务管理和爬虫调度解决方案。它能够帮助您轻松管理和调度 Python 任务,特别适合需要定时执行的爬虫任务和数据处理任务。 ![登录界面](https://www.helloimg.com/i/2025/03/06/67c8f0ad6c9a1.png) ![主界面](https://pic1.imgdb.cn/item/6809ec0158cb8da5c8c8e736.jpg) ## 开发背景 在当今数字化时代,自动化数据采集和处理变得越来越重要。然而,现有的任务调度解决方案要么过于复杂,要么缺乏针对 Python 环境的特定优化。TaskPyro 正是为了解决这些痛点而诞生的,旨在为 Python 开发者提供一个简单、高效、可靠的任务调度平台。 ## 为什么选择TaskPyro? - 🚀 **轻量级设计**:占用资源小,运行高效 - 🔄 **灵活调度**:支持多种调度方式,满足各类需求 - 🐍 **Python环境管理**:自由分配不同的Python虚拟环境 - 📊 **可视化监控**:直观的任务运行状态展示 - 🔒 **安全可靠**:完善的异常处理和错误恢复机制 ## 适用人群 TaskPyro 特别适合以下用户群体: - 🔍 **数据工程师**:需要定期执行数据采集、清洗和处理任务 - 🕷️ **爬虫开发者**:需要管理和调度多个爬虫任务 - 📊 **数据分析师**:需要自动化数据分析流程 - 🛠️ **系统运维人员**:需要执行定时系统维护任务 - 🚀 **创业团队**:需要一个轻量级但功能完整的任务调度解决方案 ## 使用流程 - 配置Python环境和Python版本(系统会默认基础Python版本) - 创建项目 - 创建定时任务 ## 核心功能 TaskPyro 提供了一系列强大的功能,帮助您高效管理 Python 任务: - 📅 **灵活的任务调度** - 支持 Cron 表达式定时调度 - 支持固定间隔调度 - 支持一次性任务执行 - 支持任务依赖关系配置 - 🔧 **Python 环境管理** - 支持多个 Python 虚拟环境 - 环境隔离,避免依赖冲突 - 支持 pip 包管理 - 支持官网资源包自动解压安装 - 内置Python版本管理工具 - 🕷️ **爬虫框架支持** - 支持 Scrapy 等主流爬虫框架 - 支持 Selenium、Playwright、DrissionPage 等浏览器自动化工具 - 提供完整的框架运行环境配置 - 📊 **任务监控与管理** - 实时任务状态监控 - 详细的执行日志记录 - 任务执行统计分析 - 支持钉钉、飞书、企业微信通知 - 异常通知与告警 - 💼 **用户友好** - 直观的 Web 操作界面 - 详细的使用文档 - 简单的部署流程 - 完善的错误处理机制 # Docker 安装 TaskPyro 提供了基于 Docker 的快速部署方案,让您能够轻松地在任何支持 Docker 的环境中运行。 ## 前置条件 在开始安装之前,请确保您的系统已经安装了以下软件: ### Docker 安装 - Docker(本人使用的版本为 26.10.0,低于此版本安装可能会存在问题,建议删除旧版本,升级新版本docker) ### Docker Compose 安装 - Docker Compose(版本 2.0.0 或更高) - 注意:如果您使用的是 Docker 26.1.0 版本,建议安装最新版本的 Docker Compose 以确保兼容性 ## 安装步骤 ### 0. 拉取代码 gitub ```bash git clone https://github.com/taskPyroer/taskpyro.git ``` gitee ```bash git clone https://gitee.com/taskPyroer/taskpyrodocker.git ``` > 可以直接拉取上面的代码,或者按下面的1、2、3步骤创建文件 ### 1. 创建项目目录 ```bash mkdir taskpyro cd taskpyro ``` ### 2. 创建 docker-compose.yml 文件 在项目目录中创建 `docker-compose.yml` 文件,内容如下: ```yaml version: '3' services: frontend: image: crpi-7ub5pdu5y0ps1uyh.cn-hangzhou.personal.cr.aliyuncs.com/taskpyro/taskpyro-frontend:1.0 ports: - "${FRONTEND_PORT:-7789}:${FRONTEND_PORT:-7789}" environment: - PORT=${FRONTEND_PORT:-7789} - SERVER_NAME=${SERVER_NAME:-localhost} - BACKEND_PORT=${BACKEND_PORT:-8000} - API_URL=http://${SERVER_NAME}:${BACKEND_PORT:-8000} - TZ=Asia/Shanghai env_file: - .env depends_on: - api api: image: crpi-7ub5pdu5y0ps1uyh.cn-hangzhou.personal.cr.aliyuncs.com/taskpyro/taskpyro-api:1.0 ports: - "${BACKEND_PORT:-8000}:${BACKEND_PORT:-8000}" environment: - PORT=${BACKEND_PORT:-8000} - PYTHONPATH=/app - CORS_ORIGINS=http://localhost:${FRONTEND_PORT:-7789},http://127.0.0.1:${FRONTEND_PORT:-7789} - TZ=Asia/Shanghai - WORKERS=${WORKERS:-1} volumes: - /opt/taskpyrodata/static:/app/../static - /opt/taskpyrodata/logs:/app/../logs - /opt/taskpyrodata/data:/app/data env_file: - .env init: true restart: unless-stopped ``` ### 3. 创建 .env 文件 在项目目录中创建 `.env` 文件,用于配置环境变量: ```env FRONTEND_PORT=8080 BACKEND_PORT=9000 SERVER_NAME=localhost WORKERS=1 ``` ### 4. 启动服务 ```bash docker-compose up -d ``` 启动后直接在浏览器中访问至 http://:8080 ## 安装注意事项 1. **数据持久化** - 数据文件会保存在 `/opt/taskpyrodata` 目录下,包含以下子目录: - `static`:静态资源文件 - `logs`:系统日志文件 - `data`:应用数据文件 - 建议定期备份这些目录,特别是 `data` 目录 2. **环境变量配置** - 在 `.env` 文件中配置以下必要参数: - `FRONTEND_PORT`:前端服务端口(默认8080) - `BACKEND_PORT`:后端服务端口(默认9000) - `SERVER_NAME`:服务器域名或IP(默认localhost,不用修改) - `WORKERS`:后端工作进程数(默认1,不用修改) - 确保 `SERVER_NAME` 配置正确,否则可能导致API调用失败 3. **端口配置** - 前端服务默认使用8080端口 - 后端服务默认使用9000端口 - 确保这些端口未被其他服务占用 - 如需修改端口,只需要更新 `.env` 文件中的配置 4. **容器资源配置** - 建议为容器预留足够的CPU和内存资源 - 可通过Docker的资源限制参数进行调整 - 监控容器资源使用情况,适时调整配置 ## 常见问题 1. **前端服务无法访问** - 检查 `FRONTEND_PORT` 端口是否被占用 - 确认前端容器是否正常启动:`docker-compose ps frontend` - 查看前端容器日志:`docker-compose logs frontend` - 验证 `SERVER_NAME` 配置是否正确 2. **后端API连接失败** - 检查 `BACKEND_PORT` 端口是否被占用 - 确认后端容器是否正常启动:`docker-compose ps api` - 查看后端容器日志:`docker-compose logs api` - 验证 `CORS_ORIGINS` 配置是否包含前端访问地址 3. **容器启动失败** - 检查 Docker 服务状态:`systemctl status docker` - 确认 docker-compose.yml 文件格式正确 - 验证环境变量配置是否完整 - 检查数据目录权限:`ls -l /opt/taskpyrodata` 4. **数据持久化问题** - 确保 `/opt/taskpyrodata` 目录存在且有正确的权限 - 检查磁盘空间是否充足 - 定期清理日志文件避免空间占用过大 - 建议配置日志轮转策略 5. **资源配置** - 根据实际需求调整 Docker 容器的资源限制 - 监控服务器资源使用情况,适时调整配置 ## 升级说明 要升级到新版本,请执行以下步骤: ```bash # 拉取最新镜像 docker-compose pull # 重启服务 docker-compose up -d ``` ## 卸载说明 如果需要卸载 TaskPyro,可以执行以下命令: ```bash # 停止并删除容器 docker-compose down # 如果需要同时删除数据(谨慎操作!) rm -rf /opt/taskpyrodata ``` # 系统资源监控 仪表盘提供了实时的系统资源使用情况监控,帮助您及时了解系统的运行状态。 ![仪表盘界面](https://pic1.imgdb.cn/item/6809ec0158cb8da5c8c8e736.jpg) ## CPU使用率 显示当前系统的CPU使用百分比,以及最近的CPU负载情况。 ## 内存使用率 展示系统内存的使用情况,包括: - 已使用内存/总内存 - 使用率百分比 例如:11.9 GB / 15.8 GB,使用率75.1% ## 磁盘使用率 监控系统磁盘存储空间的使用情况: - 已使用空间/总空间 - 使用率百分比 例如:57.8 GB / 341.2 GB,使用率16.9% # 任务执行统计 ## 任务成功率 展示系统中任务的整体执行情况: - 成功任务数/总任务数 - 成功率百分比 例如:16/18个任务成功,成功率89% ## 每日任务执行统计 通过图表形式展示每日任务执行的详细统计: - 成功任务:显示绿色 - 失败任务:显示红色 - 错过任务:显示黄色 图表可以直观地展示任务执行的趋势和分布情况,帮助您更好地了解系统运行状况。 ## 项目管理功能 TaskPyro 提供了直观的项目管理界面,支持添加和编辑项目。本文将详细介绍项目管理的各项功能。 ## 查看项目列表 在项目管理界面,您可以查看已创建的项目列表。每个项目都包含以下信息: ![项目界面](https://pic1.imgdb.cn/item/681b18f958cb8da5c8e29333.png) ## 添加/编辑项目 在项目管理界面,您可以通过点击"新建项目"按钮来创建新项目。新建项目界面如下: ![新建ZIP项目界面](https://pic1.imgdb.cn/item/681b18f958cb8da5c8e29332.png) ![新建GIT项目界面](https://pic1.imgdb.cn/item/681b18f958cb8da5c8e29331.png) 以下是各个字段的详细说明: ### 项目名称 - 为您的项目设置一个唯一的名称 - 建议包含版本信息,便于管理 ### 工作路径 工作路径是项目文件的执行路径,系统会根据上传的ZIP文件结构自动推荐合适的工作路径: - 单文件情况:如果ZIP解压后只有一个Python文件,工作路径默认设置为 `/` - 文件夹情况:如果ZIP解压后包含项目文件夹(如 `Demo` 文件夹),且Python文件位于该文件夹中,则工作路径会设置为 `/Demo`,即工作路径为项目文件夹名称 - GIT仓库情况:如果选择Git仓库方式导入项目,工作路径默认设置为 `/` ::: tip 提示 正确设置工作路径对项目的执行至关重要,它决定了Python文件的相对导入路径。 ::: ### 项目描述 - 可以添加项目的详细说明 - 支持描述项目的功能、用途、注意事项等信息 ### 项目标签 - 支持为项目添加多个标签 - 标签可用于项目分类和快速筛选 - 在输入框中输入标签名称,点击"添加"按钮即可创建新标签 ### 项目来源 您可以通过以下两种方式导入项目代码: #### ZIP上传 - 支持上传ZIP格式的压缩文件 - ZIP文件应包含完整的项目代码和相关资源 - 可以通过拖拽或点击选择文件的方式上传 ::: warning 注意 请确保ZIP文件的组织结构合理,便于系统正确识别工作路径。 ::: #### Git仓库 - 支持从Git仓库拉取代码 - 需要提供完整的Git仓库地址(HTTPS格式) - 可以选择指定的分支(默认为main分支) - 支持私有仓库认证(可选填写用户名和密码) ::: tip 提示 使用Git仓库方式可以更方便地管理和更新项目代码。建议使用HTTPS格式的仓库地址,如:https://github.com/username/repository.git ::: ## 使用建议 1. 项目命名建议包含版本信息,便于版本管理 2. 合理使用标签系统,便于项目分类和检索 3. 在上传ZIP文件前,建议检查项目结构的合理性 4. 确保工作路径设置正确,避免执行时出现导入错误 # Python虚拟环境管理 TaskPyro提供了强大而灵活的Python虚拟环境管理功能,默认支持Python 3.9.21版本。通过直观的Web界面,您可以轻松创建、编辑和管理虚拟环境,为您的任务提供独立的运行环境。 ## 核心特性 ### 1. 环境复用与管理 - 🔄 **一对多关系**:一个虚拟环境可以同时服务于多个定时任务,提高资源利用效率 - ⚙️ **灵活配置**:支持自定义环境名称和依赖包,满足不同任务的需求 ### 2. 实时安装日志 - 📝 **详细记录**:完整记录包安装过程,包括下载进度、依赖解析等信息 - 🔍 **错误追踪**:清晰显示安装过程中的警告和错误信息,便于问题排查 - ⚡ **实时反馈**:安装过程实时展示,无需等待即可了解安装状态 ### 3. 镜像源管理 - 🌐 **多源支持**:内置多个常用PyPI镜像源,包括: - 官方PyPI源 - 阿里云镜像源 - 清华大学镜像源 - 中国科技大学镜像源 - 华为云镜像源 - 腾讯云镜像源 - ✏️ **自定义配置**:支持添加、编辑和删除镜像源 - 🔄 **灵活切换**:可随时切换到最适合的镜像源,优化包下载速度 ## 相比使用Docker创建定时任务的优势 ### 1. 资源效率 - 🚀 **更低的资源占用**:无需为每个任务创建独立容器,显著减少系统资源消耗 - 💾 **更少的磁盘空间**:环境复用避免重复安装相同的依赖包 - ⚡ **更快的启动速度**:直接使用虚拟环境,无需等待容器启动 ### 2. 管理便捷 - 🎯 **集中管理**:统一的Web界面管理所有虚拟环境 - 🔄 **即时生效**:环境更新后立即生效,无需重建容器 - 📊 **资源监控**:直观展示环境使用情况和任务关联关系 ### 3. 灵活性 - 🔗 **环境共享**:多个任务可共享同一个虚拟环境 - 🛠️ **快速调整**:随时添加或移除依赖包,无需重新构建镜像 - 🔍 **便于调试**:直接访问虚拟环境,简化问题排查流程 ## 使用建议 1. 根据项目依赖合理规划虚拟环境,相似依赖的任务可以共用同一环境 2. 定期检查和更新依赖包,确保安全性和稳定性 3. 选择地理位置较近的镜像源,提升包下载速度 4. 保留关键依赖包的版本号,避免版本更新导致的兼容性问题 ## 界面展示 ### 入口界面 ![入口界面](https://www.helloimg.com/i/2025/03/06/67c8f2c0f18a5.png) ### 新建环境 ![新建环境](https://pic1.imgdb.cn/item/6809faba58cb8da5c8c8ec07.png) ### 安装日志 ![安装日志](https://www.helloimg.com/i/2025/03/06/67c8f2c09fdd6.png) ### 镜像源管理 ![镜像源管理](https://www.helloimg.com/i/2025/03/06/67c8f2c09a765.png) # Python版本管理 ## 功能介绍 TaskPyro提供了强大的Python版本管理功能,支持多个Python版本的并存和切换。通过简单的操作,您可以轻松地下载、安装和管理不同版本的Python环境,为不同的爬虫项目提供独立的运行环境。 ## 添加Python版本 ![添加Python版本界面](https://pic1.imgdb.cn/item/6809fc2158cb8da5c8c8ec90.png) 1. 从官网(https://www.python.org/downloads/source/) 下载所需要的版本,请下载 Stable Releases 中的 XZ compressed source tarball 类型文件,即.tar.xz格式 2. 填写版本名称、下载地址 3. 点击「添加Python版本」按钮 3. 系统会自动从Python官网下载对应的安装包 4. 下载完成后,系统会自动解压并完成安装,整个过程耗时会较长,请耐心等待 ::: tip 提示 - 仅支持下载Python官方发布的Stable版本 - 下载源为Python官方网站,请确保网络连接正常 - 选择.tar.xz格式的压缩包,下载速度更快 ::: # 任务管理 TaskPyro提供了强大而灵活的任务管理功能,让您能够轻松创建和管理Python脚本的定时任务。 ## 创建任务 在TaskPyro中创建新任务时,您可以: 1. 为任务指定一个描述性的名称 2. 选择已创建的项目和对应的Python虚拟环境 3. 设置要执行的Python脚本命令(例如:`python script.py`) 4. 配置任务的调度方式 ![新建任务界面](https://www.helloimg.com/i/2025/03/06/67c8f2eb516fd.png) ### 立即执行 不需要时间调度,立即执行一次任务。 ## 调度类型 TaskPyro支持多种调度类型,以满足不同的任务执行需求: ### 间隔执行 按照固定的时间间隔重复执行任务。您可以设置: - 间隔时长(支持秒、分钟、小时、天等单位) - 首次执行时间 ### 一次性执行 在指定的日期和时间执行一次任务。 ### Cron表达式 使用标准的Cron表达式来定义复杂的执行计划,支持: - 分钟级别的精确控制 - 每天、每周、每月的定时执行 - 复杂的组合调度规则 ## 任务列表 TaskPyro的主界面提供了丰富的任务调度信息和操作功能: ### 基本信息 - 任务名称和描述 - 所属项目和Python虚拟环境 - 执行命令和参数 - 下次执行时间 - 任务状态(活跃中、暂停、错误) ### 任务操作 - 暂停/启动调度任务 - 强制终止正在运行的任务实例 - 编辑任务配置 - 添加/编辑任务标签,方便分类管理 ![任务列表界面](https://www.helloimg.com/i/2025/03/06/67c8f2ec0adeb.png) ## 执行历史 每个任务都有详细的执行历史记录,您可以查看: - 历次执行的开始和结束时间 - 任务执行状态(成功/失败) - 执行耗时统计 - 错误信息(如果执行失败) ![执行历史界面](https://www.helloimg.com/i/2025/03/06/67c8f2eb6f17c.png) ## 运行日志 TaskPyro提供了强大的日志查看功能: ### 日志筛选 - 按时间范围筛选 - 支持关键词搜索 - 按日志级别过滤(INFO、ERROR等) ### 实时查看 - 自动刷新最新日志 - 支持暂停自动刷新 - 可查看历史日志记录 ![运行日志界面](https://www.helloimg.com/i/2025/03/06/67c8f2ebdfdbc.png) ## 并发实例管理 TaskPyro提供了灵活的并发实例管理功能: 1. 默认情况下,如果上一个任务实例还在运行,新的调度时间到达时将跳过执行 2. 通过设置最大并发实例数,可以允许同一个任务的多个实例同时运行 3. 适用场景示例: - 任务执行时间为1分钟 - 调度间隔为30秒 - 设置并发实例后,新的任务实例将在下一个时间点启动,不需要等待上一个实例完成 - 不设置并发实例时,将等待上一个实例完成后,在下一个调度点执行 ## 任务编辑 您可以随时编辑已创建的任务: - 修改任务名称和描述 - 更新Python环境配置 - 调整调度设置 - 启用/禁用并发实例 - 管理任务标签 通过这些功能,TaskPyro为您提供了一个完整的Python任务调度解决方案,帮助您高效管理自动化任务。 # 设置 ## 用户设置 在用户设置页面,您可以管理您的账户设置并修改密码。系统默认的管理员账户信息如下: - 用户名:admin - 默认密码:admin123 为了系统安全,建议您在首次登录后立即修改默认密码。修改密码时,需要输入当前密码和新密码,并确认新密码。 ## 许可证设置 许可证设置页面显示了您当前的许可证状态和使用限制。免费版用户可以使用以下功能: - 创建最多 5 个定时任务 - 创建最多 2 个项目 - 创建最多 2 个虚拟环境 如需突破以上限制,您可以[购买许可证]以获得无限制使用权限。点击"激活"按钮,输入有效的许可证密钥即可激活高级功能。如需购买许可证,请订阅。 ## 邮件设置 邮件设置功能允许您配置系统的邮件通知功能。当启用邮件通知后,系统会在定时任务执行出错时自动发送警报邮件。 配置邮件通知需要设置以下信息: 1. SMTP服务器地址 2. SMTP端口 3. 邮箱用户名 4. 邮箱密码 5. 启用通知 完成上面配置后,点击保存按钮即可。 配置完成后,添加收件人邮箱地址,您可以点击"测试邮件" ## 信息设置 支持钉钉机器人、飞书、企业微信机器人 # 订阅方案 ## 免费版 免费版本为您提供以下功能限制: - 创建最多 5 个定时任务 - 创建最多 2 个项目 - 创建最多 2 个虚拟环境 ## 付费许可证 购买许可证后,您可以享受无限制的功能: - 无限制创建定时任务 - 无限制创建项目 - 无限制创建虚拟环境 ::: tip 重要提示 在授权有效期内,您可以享受完全无限制的功能,并且支持更换绑定的服务器。 ::: ## 价格方案 我们提供多种灵活的付费方案,满足您不同的需求: - 半年付:66元/6个月 - 年付:99元/年 - 永久:688/年 ## 购买方式 请添加微信:**PJ221BBB** ::: tip 备注说明 加好友时请备注:taskpyro ::: # 学习交流 | 微信:PJ221BBB | 公众号:布鲁的Python之旅 | |-------------|-----------------| | ![个人微信](https://www.helloimg.com/i/2025/03/06/67c8f41cc017f.png) | ![公众号](https://www.helloimg.com/i/2025/03/06/67c8f41ca7f2a.png) |