DBOS Transact Py 项目使用教程
1. 项目目录结构及介绍
DBOS Transact Py 是一个基于 Python 的轻量级持久执行库,其目录结构如下:
dbos-transact-py/
├── .github/ # GitHub 工作流和配置文件
│ └── workflows/
├── tests/ # 测试用例
├── version/ # 版本管理相关文件
├── .gitignore # Git 忽略文件
├── .pre-commit-config.yaml # 预提交钩子配置
├── .pydocstyle # Python 代码风格配置
├── CONTRIBUTING.md # 贡献指南
├── DEVELOPING.md # 开发指南
├── LICENSE # 许可证文件
├── README.md # 项目说明文件
├── alembic.ini # 数据库版本迁移配置
├── make_release.py # 打包发布脚本
├── pdm.lock # 包管理器锁文件
├── pyproject.toml # Python 项目配置
└── pyrightconfig.test.json # Pyright 配置文件
主要目录和文件说明:
.github/workflows/
: 存放 GitHub Actions 工作流文件,用于自动化测试、构建等。tests/
: 包含项目的单元测试和集成测试。version/
: 用于管理项目版本。.gitignore
: 指定 Git 忽略的文件和目录。.pre-commit-config.yaml
: 配置 pre-commit 钩子,用于在提交前自动执行代码格式化等任务。.pydocstyle
: 配置 Python 代码风格指南。CONTRIBUTING.md
: 提供贡献项目时需要遵守的指南。DEVELOPING.md
: 提供开发项目的指南和最佳实践。LICENSE
: 项目使用的许可证信息。README.md
: 项目的简介、安装和使用说明。alembic.ini
: 数据库版本控制和迁移配置文件。make_release.py
: 用于创建项目发布的脚本。pdm.lock
: 包管理器 pdm 的锁文件,记录了项目依赖的精确版本。pyproject.toml
: Python 项目配置文件,定义了项目的元数据和依赖。
2. 项目的启动文件介绍
项目的启动文件通常为 main.py
,以下是基本的结构示例:
from fastapi import FastAPI
from dbos import DBOS
app = FastAPI()
dbos = DBOS(fastapi=app)
@dbos.step()
def step_one():
print("Step one completed!")
@dbos.step()
def step_two():
print("Step two completed!")
@dbos.workflow()
def dbos_workflow():
step_one()
# 这里可以加入更多的步骤或逻辑
step_two()
@app.get("/")
def fastapi_endpoint():
dbos_workflow()
return {"message": "Workflow executed"}
启动文件说明:
FastAPI
是一个用于构建 API 的 Python 框架。DBOS
是项目的主要类,用于实现持久执行。@dbos.step()
装饰器标记一个函数作为执行步骤。@dbos.workflow()
装饰器标记一个函数作为工作流,它会执行所有标记为步骤的函数。@app.get("/")
是一个路由装饰器,用于定义 FastAPI 应用的一个 GET 路由。
3. 项目的配置文件介绍
项目的配置文件通常为 config.py
或在 pyproject.toml
中指定,这里假设使用 pyproject.toml
。
pyproject.toml
文件中可以定义项目的基本信息和依赖,例如:
[build-system]
requires = ["pdm"]
[tool.pdm]
dependencies = [
"fastapi",
"uvicorn",
"dbos",
# 其他依赖...
]
[project]
name = "dbos-transact-py"
version = "0.24.0"
description = "A lightweight durable execution library built on Postgres"
authors = ["dbos-inc"]
license = { file = "LICENSE" }
readme = "README.md"
配置文件说明:
[build-system]
: 指定构建系统的工具,这里使用了pdm
。[tool.pdm]
: 定义项目依赖,这里是项目运行所需的第三方库。[project]
: 定义项目的基本信息,包括名称、版本、描述、作者、许可证和 README 文件。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考