feat: serialize keyed tasks across queues with durable fencing tokens
This commit is contained in:
@@ -21,6 +21,7 @@ type Capability struct {
|
||||
|
||||
// ConnectInput 在每次连接时提交;同一进程恢复时保留实例和秘密。
|
||||
type ConnectInput struct {
|
||||
ConcurrencyKeys bool `json:"concurrency_keys,omitempty"` // ConcurrencyKeys 显式支持互斥资源键和单调序号交付,重连不可变。
|
||||
CancellationNotifications bool `json:"cancellation_notifications,omitempty"` // CancellationNotifications 显式接受 task.cancel 提示;事实仍从持久化租约核对。
|
||||
InstanceID core.ID `json:"instance_id"` // InstanceID 进程标识,重启换新值。
|
||||
InstanceSecret string `json:"instance_secret"` // InstanceSecret 32 字节随机秘密,只保存摘要。
|
||||
@@ -56,12 +57,13 @@ type CapacityInput struct {
|
||||
|
||||
// Assignment 仅通过已认证执行连接交付,包含敏感尝试秘密。
|
||||
type Assignment struct {
|
||||
Task service.TaskView `json:"task"` // Task 受理快照及业务参数。
|
||||
AttemptID core.ID `json:"attempt_id"` // AttemptID 本次尝试标识。
|
||||
Epoch uint64 `json:"epoch,string"` // Epoch 任务执行代次,隔离旧尝试。
|
||||
LeaseSecret string `json:"lease_secret"` // LeaseSecret 执行秘密,禁止普通日志及查询返回。
|
||||
LeaseUntil time.Time `json:"lease_until"` // LeaseUntil 尚未开始时的预占有效期。
|
||||
ServerTime time.Time `json:"server_time"` // ServerTime 领取时数据库时间。
|
||||
ConcurrencyToken uint64 `json:"concurrency_token,omitempty,string"` // ConcurrencyToken 资源键的单调许可序号;无资源键时为零,不能代替当前授权。
|
||||
Task service.TaskView `json:"task"` // Task 受理快照及业务参数。
|
||||
AttemptID core.ID `json:"attempt_id"` // AttemptID 本次尝试标识。
|
||||
Epoch uint64 `json:"epoch,string"` // Epoch 任务执行代次,隔离旧尝试。
|
||||
LeaseSecret string `json:"lease_secret"` // LeaseSecret 执行秘密,禁止普通日志及查询返回。
|
||||
LeaseUntil time.Time `json:"lease_until"` // LeaseUntil 尚未开始时的预占有效期。
|
||||
ServerTime time.Time `json:"server_time"` // ServerTime 领取时数据库时间。
|
||||
}
|
||||
|
||||
// AttemptRef 证明对一次尝试的控制权;连接代次仍由 Binding 单独验证。
|
||||
|
||||
Reference in New Issue
Block a user