feat: serialize keyed tasks across queues with durable fencing tokens

This commit is contained in:
2026-09-17 18:25:00 +08:00
parent 993786476e
commit 958b4a8cea
43 changed files with 1319 additions and 82 deletions

View File

@@ -118,6 +118,10 @@
},
"cancellation_notifications": {
"type": "boolean"
},
"concurrency_keys": {
"type": "boolean",
"description": "显式支持资源键许可及单调序号交付;同进程重连固定。"
}
},
"required": [
@@ -521,6 +525,12 @@
"effect_uncertain": {
"type": "boolean",
"description": "仍有历史执行效果未核实,重试不清除。"
},
"concurrency_key": {
"type": "string",
"minLength": 1,
"maxLength": 191,
"description": "命名空间内字节精确匹配的互斥资源键;空白边界及控制字符由运行时拒绝。"
}
},
"required": [
@@ -563,6 +573,9 @@
},
"server_time": {
"$ref": "#/$defs/time"
},
"concurrency_token": {
"$ref": "#/$defs/uint64"
}
},
"required": [
@@ -573,7 +586,32 @@
"lease_until",
"server_time"
],
"additionalProperties": false
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"task": {
"required": [
"concurrency_key"
]
}
}
},
"then": {
"required": [
"concurrency_token"
]
},
"else": {
"not": {
"required": [
"concurrency_token"
]
}
}
}
]
},
"error": {
"type": "object",