SuperAPI AI 工具集

dbos-java

编程与开发

查看项目

更新于 10-15 20:34

技能介绍

用途:该技能为使用 DBOS Java SDK 构建可靠、容错的 Java 或 Kotlin 应用提供最佳实践指南,适用于在现有代码中加入 DBOS、创建工作流与步骤、用队列控制并发、实现工作流通信(事件、消息、流)、配置与启动应用(含 Spring Boot)、从外部应用使用 DBOSClient,以及测试 DBOS 应用。

主要能力与规则分类:按优先级分为生命周期(CRITICAL)、工作流(CRITICAL)、步骤(HIGH)、队列(HIGH)、通信(MEDIUM)、模式(MEDIUM)、测试(LOW-MEDIUM)、客户端(MEDIUM)、高级(LOW)。

安装:需 Java 17+、Gradle 8+,依赖为 implementation("dev.dbos:transact:1.2.0"),可选 org.slf4j:slf4j-simple:2.0.17 查看日志。需要 PostgreSQL 兼容数据库,连接通常通过 DBOS_SYSTEM_JDBC_URL、PGUSER、PGPASSWORD 提供。

使用方式:应用必须创建 DBOS 实例、注册工作流类,然后 launch()。工作流是注册类上标注 @Workflow 的普通方法,复杂、非确定性或调用外部服务的操作须作为步骤,通过 dbos.runStep 或经代理调用的 @Step 方法执行。新建应用设置 withAppVersion("0.1.0");编辑现有应用不要改动已配置版本。

关键限制:工作流与 @Step 方法只有通过 registerProxy 返回的代理(Spring Boot 中为注入的 self 引用)调用才持久化,经 this 调用会绕过 DBOS;所有工作流类必须在 launch() 前注册,数据库队列在 launch() 后注册;步骤内不得启动、入队或获取工作流,也不得调用 send、recv、setEvent、getEvent;工作流必须确定性,随机数、当前时间、I/O 和线程放入步骤;工作流参数与返回值须可被 Jackson JSON 序列化;工作流内使用 dbos.sleep 而非 Thread.sleep。

参考:https://docs.dbos.dev/ 与 https://github.com/dbos-inc/dbos-transact-java。其余细节暂未提供。