docs: consolidate runnable examples and publish v0.1.1 guides

This commit is contained in:
2026-09-24 21:27:25 +08:00
parent e29dec717f
commit 81e56bd633
124 changed files with 1430 additions and 281 deletions

View File

@@ -9,3 +9,34 @@
- [业务 Inbox 示例实现](internal/inbox/store.go),沿用独立 result-inbox 示例的事件去重与版本约束
`init` 创建业务库表;`provision` 用稳定身份创建结果订阅;`serve` 使用配置中的订阅 ID,启动时无需 Orbit 在线。默认只监听回环地址 127.0.0.1:8090。接入已有服务时挂载业务路由,并接入原有鉴权、监控及生命周期。
## 快速运行
先按上方完整手册创建专用 Orbit 队列/凭据(含 Worker 与事件权限)和一个独立空业务库。从仓库根目录执行,DSN 替换为自己的配置:
```sh
export ORBIT_URL=http://127.0.0.1:8080
export ORBIT_CREDENTIALS_FILE="$PWD/.local/http-demo.credentials.json"
export APP_MYSQL_DSN='user:password@tcp(127.0.0.1:3306)/orbit_http_demo'
export APP_HTTP_ADDR=127.0.0.1:8090
cd examples/http-service
export GOWORK=off
go run ./cmd/server init
export ORBIT_SUBSCRIPTION_ID="$(go run ./cmd/server provision)"
go build -o server ./cmd/server
./server serve
```
`init` 只在首次空库执行;持久保存 provision 的订阅 ID,重启只运行 `serve`。另开终端:
```sh
export OPERATION_ID="$(openssl rand -hex 16)"
curl --fail http://127.0.0.1:8090/jobs \
-H 'Content-Type: application/json' \
-d "{\"operation_id\":\"$OPERATION_ID\",\"source_ref\":\"objects/demo.txt\"}"
curl --fail "http://127.0.0.1:8090/jobs/$OPERATION_ID"
```
预期首次返回 `local_committed=true`;稍后 GET 显示 `submission=ACCEPTED`、`execution=SUCCEEDED`,结果包含 `normalized_ref=OBJECTS/DEMO.TXT`。同 ID、同内容重报返回 `duplicate=true`;相同 ID 改内容返回 409。超时后保留原 ID,不重新生成。
通过 Ctrl-C/SIGTERM 关闭时先停止接收 HTTP,再收尾发送器/Worker,之后停止结果消费,最后关闭数据库。完整错误码、故障恢复和部署关闭期限见运行手册。