Prefect

活跃
GitHub Python Apache-2.0

简介

Python 工作流编排框架,用于构建弹性数据管道和 AI 工作流,支持任务调度、状态管理和失败重试,适合从本地开发到分布式部署的全场景。

核心特性

  • Flow 和 Task 装饰器 — 用 @flow 和 @task 装饰器将 Python 函数声明为可编排的工作流
  • 自动重试与错误处理 — 内置任务级重试、缓存、参数化执行,自动处理失败恢复
  • 定时调度部署 — 支持 cron 表达式和事件触发的自动化部署与调度
  • 可视化监控面板 — Prefect Server UI 实时展示工作流运行状态、日志和依赖关系
  • 分布式执行 — 从本地到 Kubernetes/Docker 的弹性部署,支持并行任务执行
  • 事件驱动自动化 — 基于工作流事件触发后续动作,构建响应式数据管道

适用场景

💡 构建弹性 ETL 数据管道(数据抽取、清洗、加载)
💡 编排 AI/ML 训练和推理工作流
💡 自动化定时数据报表和监控任务
💡 管理多步骤的数据科学实验流水线
💡 构建从本地开发到生产部署的可扩展数据流程

快速开始

pip install -U prefect

from prefect import flow, task
import httpx

@task(log_prints=True)
def get_stars(repo: str):
    url = f"https://api.github.com/repos/{repo}"
    count = httpx.get(url).json()["stargazers_count"]
    print(f"{repo} has {count} stars!")

@flow(name="GitHub Stars")
def github_stars(repos: list[str]):
    for repo in repos:
        get_stars(repo)

if __name__ == "__main__":
    github_stars(["PrefectHQ/prefect"])

相关项目