轻量级的Python任务管理和爬虫调度平台

艺帆风顺 发布于 2025-04-19 28 次阅读


 

前言

身为一名多年Python爬虫开发的程序员,每天都有大量不同的定时任务,也用过一些其他管理平台,但都有各种各样的问题,所以为了适应和兼容各种Python定时任务,我决定开发一个调度平台

TaskPyro 是什么?

TaskPyro 是一个轻量级的 Python 任务调度平台,专注于提供简单易用的任务管理和爬虫调度解决方案。它能够帮助您轻松管理和调度 Python 任务,特别适合需要定时执行的爬虫任务和数据处理任务。

官方文档:https://docs.taskpyro.cn/

开发背景

在当今数字化时代,自动化数据采集和处理变得越来越重要。然而,现有的任务调度解决方案要么过于复杂,要么缺乏针对 Python 环境的特定优化。TaskPyro 正是为了解决这些痛点而诞生的,旨在为 Python 开发者提供一个简单、高效、可靠的任务调度平台。

为什么选择TaskPyro?

  • • 🚀 轻量级设计:占用资源小,运行高效
  • • 🔄 灵活调度:支持多种调度方式,满足各类需求
  • • 🐍 Python环境管理:自由分配不同的Python虚拟环境
  • • 📊 可视化监控:直观的任务运行状态展示
  • • 🔒 安全可靠:完善的异常处理和错误恢复机制

适用人群

TaskPyro 特别适合以下用户群体:

  • • 🔍 数据工程师:需要定期执行数据采集、清洗和处理任务
  • • 🕷️ 爬虫开发者:需要管理和调度多个爬虫任务
  • • 📊 数据分析师:需要自动化数据分析流程
  • • 🛠️ 系统运维人员:需要执行定时系统维护任务
  • • 🚀 创业团队:需要一个轻量级但功能完整的任务调度解决方案

使用流程

  • • 先配置Python环境
  • • 创建项目
  • • 创建定时任务

核心功能

TaskPyro 提供了一系列强大的功能,帮助您高效管理 Python 任务:

  • • 📅 灵活的任务调度
    • • 支持 Cron 表达式定时调度
    • • 支持固定间隔调度
    • • 支持一次性任务执行
    • • 支持任务依赖关系配置
  • • 🔧 Python 环境管理
    • • 支持多个 Python 虚拟环境
    • • 环境隔离,避免依赖冲突
    • • 支持 pip 包管理
  • • 🕷️ 爬虫框架支持
    • • 支持 Scrapy 等主流爬虫框架
    • • 支持 Selenium、Playwright、DrissionPage 等浏览器自动化工具
    • • 提供完整的框架运行环境配置
    • • 内置Node环境,支持JS逆向
    • • 支持PyExecJS等常用逆向库
  • • 📊 任务监控与管理
    • • 实时任务状态监控
    • • 详细的执行日志记录
    • • 任务执行统计分析
    • • 异常通知与告警
  • • 💼 用户友好
    • • 直观的 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

git clone https://github.com/taskPyroer/taskpyro.git

gitee

git clone https://gitee.com/hu_yupeng123/taskpyrodocker.git

可以直接拉取上面的代码,或者按下面的1、2、3步骤创建文件

1. 创建项目目录

mkdir taskpyrocd taskpyro

2. 创建 docker-compose.yml 文件

在项目目录中创建 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:      -apiapi:    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 文件,用于配置环境变量:

FRONTEND_PORT=8080BACKEND_PORT=9000SERVER_NAME=localhostWORKERS=1

4. 启动服务

docker-compose up -d

启动后直接在浏览器中访问至 http://ip:8080

详细文档

https://docs.taskpyro.cn/

欢迎使用和提出意见,让这个管理平台更强大

 

  • - END -

  • 👆 关注「布鲁的Python之旅」第一时间收到更新

  • 👆 咨询、学习、合作请识别扫码添加我的工作微信

  • 点击阅读原文访问代码链接