Repolode
dbos-inc

dbos-inc/dbos-transact-py

一个 Python 库,用 Postgres 为程序添加可持久化的工作流和任务队列。

可替代:Temporal

Star
1,667
Fork
116
未关闭 Issue
8
最近提交
4天前

这是什么?

DBOS Transact 是一个开源的 Python 库,用于构建可持久化的工作流。开发者只需用装饰器将普通函数标记为工作流和步骤,库会把执行进度存入 Postgres。进程崩溃或重启后,工作流会从最后完成的步骤继续执行,而不是从头开始。

库中还包含基于 Postgres 的持久队列、定时调度和通知功能。从工作流中投递的任务即使遇到中断也能保证执行完成,并把结果返回给调用方。队列支持并发限制、速率限制、超时、去重和优先级设置。通过 cron 表达式可以定时触发工作流,持久化的 sleep 则允许工作流等待数天甚至数周。

整个系统不需要额外的编排服务、消息代理或队列服务,唯一的基础设施依赖是 Postgres 数据库。工作流以记录形式存放在 Postgres 中,可通过客户端 API 查询、暂停、恢复,或从指定步骤分叉重跑。

核心功能

  • 01将工作流和步骤状态存入 Postgres,进程故障后可自动恢复。
  • 02提供持久任务队列,支持并发限制、速率限制、超时、去重和优先级。
  • 03支持 cron 定时调度和重启后仍然有效的持久 sleep。
  • 04支持持久通知和事件,可让工作流暂停直到收到消息。
  • 05提供客户端 API,用于查询、暂停、恢复和从指定步骤分叉工作流。

适用场景

  • 即使服务器在操作中途崩溃也必须完成的支付或订单处理。
  • 需要从检查点恢复而非重新开始的长时间数据管道。
  • 调用不稳定或非确定性 API 的 AI 智能体。
  • 在后台以恰好一次的语义处理 webhook 或 Kafka 消息。

快速上手

  1. 1

    按照快速入门指南安装该库并连接到 Postgres 数据库

  2. 2

    使用 @DBOS.workflow() 和 @DBOS.step() 为函数添加注解,使其具备持久性

使用前须知

  • 需要 Postgres 数据库来存储工作流状态。
  • 这是一个仅支持 Python 的库,不支持其他语言。

收录于专题

标签

常见问题

dbos-transact-py 是什么?
一个 Python 库,用 Postgres 为程序添加可持久化的工作流和任务队列。 DBOS Transact 是一个开源的 Python 库,用于构建可持久化的工作流。开发者只需用装饰器将普通函数标记为工作流和步骤,库会把执行进度存入 Postgres。进程崩溃或重启后,工作流会从最后完成的步骤继续执行,而不是从头开始。
dbos-transact-py 可以免费使用吗?用的什么许可证?
dbos-transact-py 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
dbos-transact-py 还在维护吗?
活跃维护中。dbos-transact-py 最近一次提交是在 2026年11月4日。
dbos-transact-py 适合用来做什么?
即使服务器在操作中途崩溃也必须完成的支付或订单处理。 需要从检查点恢复而非重新开始的长时间数据管道。 调用不稳定或非确定性 API 的 AI 智能体。 在后台以恰好一次的语义处理 webhook 或 Kafka 消息。
dbos-transact-py 怎么安装和运行?
按照快速入门指南安装该库并连接到 Postgres 数据库 使用 @DBOS.workflow() 和 @DBOS.step() 为函数添加注解,使其具备持久性
在哪里获取 dbos-transact-py?
源代码和安装说明在 GitHub 上:https://github.com/dbos-inc/dbos-transact-py

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目