Prefect, not perfect.
安装 Prefect 非常简单,习惯了 Docker 拉起的我,这次是直接本地拉起的,因为需要claude cli 工具,所以直接本地运行了。
uv add prefect
启动 Prefect API server,这个 Server 主要是前端,API 使用,并不会真实地执行你的 flow。
uv run prefect server start
有了 Server,还需要一个干活的,那就是 Worker。但是 Worker 是挂载 Worker Pool 下面的,所以要先创建 worker pool.
NO_PROXY="127.0.0.1,localhost" uv run prefect work-pool create "mattermost-bot-pool" --type process
然后再加入这个 worker pool。
NO_PROXY="127.0.0.1,localhost" uv run prefect worker start --pool "mattermost-bot-pool"
部署准备好的 flow
NO_PROXY="127.0.0.1,localhost" uv run prefect deploy flows/bb_flow.py:bb_pr_review_flow -n "bitbucket_pr_review" -p "mattermost-bot-pool"
在其他地方就可以通过 run_deployment 执行这个 flow 了。
from prefect.deployments import run_deployment
await run_deployment(
name="BB PR Review Flow/bitbucket_pr_review",
parameters={
"repo_name": repo_name,
"pr_id": pr_id,
"channel_id": channel_id,
"post_id": post_id,
"token": settings.mattermost_bot_token_bb
},
timeout=0
)