feat: support durable task cancellation without foreign keys

This commit is contained in:
2026-09-17 17:03:23 +08:00
parent 6805506450
commit 3ce7d2c104
48 changed files with 1642 additions and 164 deletions

View File

@@ -115,6 +115,9 @@
"type": "integer",
"minimum": 1,
"maximum": 256
},
"cancellation_notifications": {
"type": "boolean"
}
},
"required": [
@@ -184,7 +187,8 @@
"enum": [
"SUCCEEDED",
"FAILED",
"UNKNOWN"
"UNKNOWN",
"CANCELLED"
]
},
"result": {
@@ -242,7 +246,8 @@
"outcome": {
"enum": [
"SUCCEEDED",
"UNKNOWN"
"UNKNOWN",
"CANCELLED"
]
}
}
@@ -305,6 +310,9 @@
},
"server_time": {
"$ref": "#/$defs/time"
},
"cancel_requested_at": {
"$ref": "#/$defs/time"
}
},
"required": [
@@ -920,8 +928,63 @@
},
{
"$ref": "#/$defs/errorFrame"
},
{
"$ref": "#/$defs/cancellationFrame"
}
]
},
"cancellation": {
"type": "object",
"properties": {
"task_id": {
"$ref": "#/$defs/id"
},
"attempt_id": {
"$ref": "#/$defs/id"
},
"epoch": {
"$ref": "#/$defs/uint64"
},
"requested_at": {
"$ref": "#/$defs/time"
}
},
"required": [
"task_id",
"attempt_id",
"epoch",
"requested_at"
],
"additionalProperties": false
},
"cancellationFrame": {
"type": "object",
"properties": {
"protocol_version": {
"const": "1"
},
"type": {
"const": "task.cancel"
},
"message_id": {
"$ref": "#/$defs/id"
},
"session_id": {
"$ref": "#/$defs/id"
},
"body": {
"$ref": "#/$defs/cancellation"
}
},
"required": [
"protocol_version",
"type",
"message_id",
"session_id",
"body"
],
"additionalProperties": false
}
}
}