feat: establish Orbit models, migrations and development baseline
This commit is contained in:
38
pulse/model/attempt.go
Normal file
38
pulse/model/attempt.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
core "git.yuntuo.hk/k2safe/orbit/model"
|
||||
)
|
||||
|
||||
// Attempt 表示一次任务执行尝试,保存租约、授权代次与独立结果。
|
||||
// 对应表 pulse_attempts;这是服务端持久化模型,不直接作为 API 响应。
|
||||
type Attempt struct {
|
||||
// Record 包含命名空间、记录标识、并发版本和 UTC 时间。
|
||||
core.Record
|
||||
// TaskID 关联的 Pulse 任务标识。
|
||||
TaskID core.ID `db:"task_id"`
|
||||
// Epoch 该任务的授权代次,同一任务内唯一且递增。
|
||||
Epoch uint64 `db:"epoch"`
|
||||
// SessionID 当前执行归属的 Worker 会话标识。
|
||||
SessionID core.ID `db:"session_id"`
|
||||
// TokenDigest 执行秘密令牌的 SHA-256 摘要,不输出原令牌。
|
||||
TokenDigest core.Digest `db:"token_digest"`
|
||||
// State 当前执行尝试的状态,不能代替整个任务的状态。
|
||||
State AttemptState `db:"state"`
|
||||
// LeaseUntil 已确认的租约截止时间,必须用数据库时间核验。
|
||||
LeaseUntil time.Time `db:"lease_until"`
|
||||
// AuthorizedAt 平台允许处理器开始的时间;不能证明业务副作用已经发生;可为空,表示尚未设置该关联或值。
|
||||
AuthorizedAt *time.Time `db:"authorized_at"`
|
||||
// EndedAt 本次尝试结束时间;尚未结束时为空。
|
||||
EndedAt *time.Time `db:"ended_at"`
|
||||
// ErrorCode 稳定错误分类,供恢复策略判断;不得写入敏感原始错误;可为空,表示尚未设置该关联或值。
|
||||
ErrorCode *string `db:"error_code"`
|
||||
// Result 已保存的结果或结果引用 JSON;未取得结果时为空。
|
||||
Result core.JSON `db:"result"`
|
||||
// ResultDigest 结果语义摘要,用于识别确认重报与冲突结果;可为空,表示尚未设置该关联或值。
|
||||
ResultDigest *core.Digest `db:"result_digest"`
|
||||
}
|
||||
|
||||
func (Attempt) TableName() string { return "pulse_attempts" }
|
||||
Reference in New Issue
Block a user