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