feat(tasks): implement atomic claims and leases

This commit is contained in:
QiuSW
2026-07-26 16:16:36 +08:00
parent 49db5b8305
commit ce875af889
50 changed files with 7589 additions and 207 deletions
+10 -6
View File
@@ -107,11 +107,8 @@ func TestParseOptionalCNYRejectsInvalidAndOverflow(t *testing.T) {
}
}
func TestCanCancelOnlyPending(t *testing.T) {
func TestCanCancelOnlyNonTerminalTask(t *testing.T) {
for _, status := range []TaskStatus{
TaskStatusClaimed,
TaskStatusRunning,
TaskStatusWaitingConfirmation,
TaskStatusSucceeded,
TaskStatusFailed,
TaskStatusCanceled,
@@ -120,8 +117,15 @@ func TestCanCancelOnlyPending(t *testing.T) {
t.Fatalf("CanCancel(%s) = true", status)
}
}
if !CanCancel(TaskStatusPending) {
t.Fatal("CanCancel(PENDING) = false")
for _, status := range []TaskStatus{
TaskStatusPending,
TaskStatusClaimed,
TaskStatusRunning,
TaskStatusWaitingConfirmation,
} {
if !CanCancel(status) {
t.Fatalf("CanCancel(%s) = false", status)
}
}
}