feat: verify bounded simultaneous schedule execution
This commit is contained in:
@@ -62,7 +62,7 @@ P4/P5定时等待与后续查询轮次的实现及回归记录见[时钟报告](
|
||||
2. 已实现[基础运行观测](api/observability.md)及[有界业务状态与事件采样](reports/phase-6-business-observability.md):HTTP/WS、数据库连接池、后台批次、固定任务/交付/流程/Inbox状态计数、最近事件类别、终态耗时样本、固定事件阶段耗时、最早年龄、截断/新鲜度指标和可离线验证的告警规则;独立采集监听默认关闭,固定指标目录拒绝动态标签;发布前只读结构核验由[`orbit-admin verify`](api/operations.md)提供,运维人员也可用 `orbit-admin observe snapshot` 获取同一有界单节点快照。仍需端到端外部效果延迟、全局持久吞吐、Inbox从事件产生到推进完成的精确阶段延迟、全局发送队列、多节点聚合及生产采集/通知验证。
|
||||
3. 已补齐受保护管理环境中的固定凭据操作文件、轮换、撤销、幂等回执和脱敏管理审计;轮换保留授权绑定并要求新令牌重新建立会话,旧 Worker 会话被排空且立即过期,撤销允许在停用范围内执行且不改写历史记录。已用一次性 MySQL 定向验证旧令牌失效、新令牌重绑和零外键;仍需补齐提交不明故障切点、多节点安全重绑演练、凭据最小权限配置核对和生产密钥托管/审计演练。
|
||||
4. 已补[`orbit-admin retention inventory`](api/retention.md)只读盘点和[阶段报告](reports/phase-6-retention-inventory.md),能区分过期幂等、确定终态、未知效果、未终结流程、已确认/未确认交付、已消费/未消费Inbox、事件和审计规模;它不执行归档或删除。后续仍需评审各类保留周期、归档格式、受保护记录核对,再执行备份恢复、兼容升级和六类容量负载。未确认交付、有效幂等身份、当前/历史执行证据和未终结流程不能被普通清理破坏。生产HA及RPO/RTO继续按实际拓扑验证,不缩减为本机多进程检查。
|
||||
5. 已补[`orbit-load`](api/load.md)有界受理负载工具及24次/1000次隔离样本,见[受理报告](reports/phase-6-load.md)。新增独立[`orbit-exec-load`](api/execution-load.md),通过真实Worker、任务结果和尝试历史核对,提供短/混合/中长任务的受理、排队、授权执行及完成耗时分布;具体环境、原始JSON和失败分母见[执行测量报告](reports/phase-6-execution-load.md)。新增[`orbit-workflow-load`](api/workflow-load.md),用固定版本的双分支并行流程核对步骤、来源、尝试和输出,见[流程测量报告](reports/phase-6-workflow-load.md)。标准Go 1.27.1全量仍待复跑,下一步补定时集中触发、长期积压和资源曲线;目标数据库拓扑容量仍单独验收。
|
||||
5. 已补[`orbit-load`](api/load.md)有界受理负载工具及24次/1000次隔离样本,见[受理报告](reports/phase-6-load.md)。新增独立[`orbit-exec-load`](api/execution-load.md),通过真实Worker、任务结果和尝试历史核对,提供短/混合/中长任务的受理、排队、授权执行及完成耗时分布;具体环境、原始JSON和失败分母见[执行测量报告](reports/phase-6-execution-load.md)。新增[`orbit-workflow-load`](api/workflow-load.md),用固定版本的双分支并行流程核对步骤、来源、尝试和输出,见[流程测量报告](reports/phase-6-workflow-load.md)。新增[`orbit-schedule-load`](api/schedule-load.md),已完成24/128次定时集中触发与24次计划量的截止负例,保存实际分母、唯一任务/尝试、来源与暂停收尾证据,见[定时测量报告](reports/phase-6-schedule-load.md)。标准Go 1.27.1全量仍待复跑,下一步补长期积压和资源曲线;目标数据库拓扑容量仍单独验收。
|
||||
6. 已补[隔离备份恢复演练](api/backup-restore.md):源库和恢复库均为一次性 MySQL 容器,逻辑备份恢复后核对迁移账本、核心记录数量、固定索引和零外键;证据见[恢复报告](reports/phase-6-backup-restore.md)。该演练不替代生产备份介质、复制切换、跨版本恢复或 RPO/RTO 验收。
|
||||
7. 已补[A18 数据库短暂不可用恢复演练](api/db-recovery.md):readiness 在数据库停止期间返回 503,同卷恢复后返回 200,并用原权限范围继续受理任务;证据见[数据库恢复报告](reports/phase-6-db-recovery.md)。该演练不替代主从切换、复制确认、跨故障域或 RPO/RTO 验收。
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
| `sdk/go/cmd/orbit-load` 有界受理负载工具 | 已实现固定并发、无自动重试、延迟百分位和错误分类;只用于隔离环境 | [负载工具](load.md) |
|
||||
| `sdk/go/cmd/orbit-exec-load` 有界任务执行测量 | 已实现真实Worker、固定混合时长、最终结果/尝试核验及阶段耗时分布 | [执行测量](execution-load.md) |
|
||||
| `sdk/go/cmd/orbit-workflow-load` 有界流程执行测量 | 已实现固定版本、双分支并行、真实Worker、步骤/来源/尝试/输出核验及阶段耗时分布 | [流程测量](workflow-load.md) |
|
||||
| 定时集中触发测量 | 已实现 | [有界计划测量工具](schedule-load.md) |
|
||||
| `scripts/test-backup-restore.sh` 隔离备份恢复演练 | 已实现一次性 MySQL 逻辑备份、独立恢复、核心计数及零外键核验 | [备份恢复演练](backup-restore.md) |
|
||||
| `scripts/test-db-recovery.sh` MySQL 短暂不可用恢复演练 | 已实现 readiness 503、同卷恢复 200 及恢复后任务受理核验 | [数据库恢复演练](db-recovery.md) |
|
||||
| `/v1/worker/connect` | P2 已实现并通过阶段验收 | [Worker 契约](worker.md)、[Schema](worker-schema.md) |
|
||||
|
||||
74
docs/api/schedule-load.md
Normal file
74
docs/api/schedule-load.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Pulse 定时触发测量工具
|
||||
|
||||
`orbit-schedule-load` 在隔离环境创建多个有限的固定间隔计划,让它们共享同一组触发时间,再通过真实 Worker 和持久化记录逐项核验。处理器只回显固定 JSON,没有外部业务副作用;工具不修改队列额度,不需要额外消息队列或缓存。
|
||||
|
||||
## 运行场景
|
||||
|
||||
在 SDK 模块目录执行,凭据需要队列读取、Worker 执行、任务读取及计划创建/读取/控制权限。隔离测试凭据可由 `orbit-admin bootstrap --worker-access --schedule-access` 签发,完整步骤见[管理手册](operations.md);不要使用生产队列做样本。
|
||||
|
||||
```sh
|
||||
# 当前目录:sdk/go
|
||||
ORBIT_URL=https://orbit.example.test \
|
||||
ORBIT_CREDENTIALS_FILE=/run/secrets/orbit-sample.json \
|
||||
go run ./cmd/orbit-schedule-load \
|
||||
-schedules 4 -requests 6 -interval 1s \
|
||||
-workers 2 -capacity 4 -start-delay 5s \
|
||||
-run-timeout 90s -poll-interval 100ms
|
||||
```
|
||||
|
||||
这个例子预期产生 **4 个计划 × 每计划 6 次 = 24 个任务**。每计划先以暂停状态创建,全部创建完后启动 Worker 并恢复计划。恢复必须在共同起点之前完成,迟到会判定本次样本失败。排他的 `end_at = start_at + requests × interval` 限制触发总量;即使工具被强制终止,计划也有固定终点。
|
||||
|
||||
可以把 `-schedules` 调到 32、`-requests` 设为 4,观察同一秒集中触发及现有队列速率限制下的排队。队列默认并发和每秒授权量仍由部署配置决定,工具只记录预检快照,不提高配额。另可使用 `-schedules 2 -requests 12 -start-delay 1s -run-timeout 5s` 验证截止不足的失败报告;它必须非零退出,未观察到的触发点不能算成功。
|
||||
|
||||
## 参数边界
|
||||
|
||||
| 参数 | 默认值 | 限制/语义 |
|
||||
| --- | --- | --- |
|
||||
| `-requests` | 6 | 每计划 1–100 次,不是总任务数 |
|
||||
| `-schedules` | 1 | 1–32 个,共享起止和间隔 |
|
||||
| `-interval` | 1s | 1s–1m,整毫秒 |
|
||||
| `-start-delay` | 5s | 1s–1m,整毫秒;预留创建、注册和恢复时间,不保证 Worker 已连接 |
|
||||
| `-workers` | 2 | 1–16 个 WSS 连接,均在一个负载进程中 |
|
||||
| `-capacity` | 2 | 每 Worker 1–128,总容量不超过 256 |
|
||||
| `-timeout` | 5s | 单个 HTTP 请求 1ms–1m |
|
||||
| `-run-timeout` | 2m | 整次测量 5s–1h,另外最多 5s Worker 收尾及 5s 计划暂停收尾 |
|
||||
| `-poll-interval` | 250ms | 100ms–10s,每轮顺序查询各计划及未核验任务 |
|
||||
| `-credentials` | 环境变量路径 | 最大 16 KiB 的私密 JSON,包含 `token`、`queue_id` |
|
||||
|
||||
URL、凭据路径和队列也可从 `ORBIT_URL`、`ORBIT_CREDENTIALS_FILE`、`ORBIT_QUEUE_ID` 读取。HTTP 明文仅用于 SDK 允许的本机隔离测试;远端使用 HTTPS/WSS。
|
||||
|
||||
计划使用 `FIXED_RATE`、`UTC`、`CATCH_UP`、`PARALLEL`,批量补跑上限 100,补跑窗口覆盖整次样本及计划跨度。发布版本固定为 1,服务端时区快照标识与生效时间从首次回执保存,后续不得变化。任务策略固定一次尝试、`RECONCILE_ONLY`,总时限和尝试时限为 `run-timeout`;未知结果不会被工具自动重跑。
|
||||
|
||||
## 核验和报告
|
||||
|
||||
输出一行 JSON,退出码 0 只表示本次有界样本完整通过。以下分母分别报告:
|
||||
|
||||
| 字段 | 解释 |
|
||||
| --- | --- |
|
||||
| `expected_occurrences` | 配置的总触发数,包含尚未观察到的部分 |
|
||||
| `occurrences` | 已看到的唯一预期触发点 |
|
||||
| `fired` | 单点触发且关联唯一任务的数量,不等于执行成功 |
|
||||
| `verified_success` | 任务结果、唯一尝试、来源与时间顺序全部通过的数量 |
|
||||
| `unobserved` | 预期数减已观察触发点数 |
|
||||
| `unverified` | 已触发数减已核验成功数 |
|
||||
| `handler_calls` / `duplicate_invocations` | 有效输入的本地调用数 / 同任务额外调用数 |
|
||||
| `unconfirmed_invocations` | 尚未对应到已核验任务和同一尝试的本地调用数 |
|
||||
| `plans` | 原计划身份、创建/恢复/暂停键、版本、生效时间和逐计划计数 |
|
||||
|
||||
核验拒绝错配计划、固定版本变化、非预期时间槽、重复触发/任务、历史消失、分页溢出、跳过/合并、错误输入/结果、额外尝试、来源错配和时间倒置。只有 `SUCCEEDED` 任务与唯一成功尝试一致才计为成功。已通过核验的槽位只计一次,重复轮询不会放大分母。
|
||||
|
||||
`trigger_lag` 是计划时间到任务受理,`queue_wait` 是受理到开始授权,`authorized_execution` 是授权到结果落库,`completion` 是计划时间到结果落库。这些时间均来自数据库,不混入客户端轮询等待;授权执行耗时包含通信和事务,不是纯函数执行时间。分布只纳入已核验成功样本,空分布百分位为 `null`。
|
||||
|
||||
`complete=true` 还要求全部计划恢复成功、固定触发范围耗尽、暂停已确认,且每个已核验任务能对应到本地唯一调用/尝试,Worker 启动数一致、无错误或重复。超时、调用过多或收尾不明均不得显示完整通过。
|
||||
|
||||
## 超时与原身份核查
|
||||
|
||||
创建和恢复请求不自动重试。创建请求结果不明时,`plans[].id` 可能为空;原创建请求的 `paused=true` 保证它不会自行开始触发。用报告里的 `create_key`、`run_id`、计划序号和时间/策略字段重建原请求,按原键读取回执,不能生成新键替代。收到计划 ID 后的所有退出路径都会尝试暂停。
|
||||
|
||||
暂停先读当前 revision,再带固定键提交。仅明确收到 `409 STATE_CONFLICT` 时,才重新读版本并使用下一个已记录键,最多三次;超时、断线或其他冲突停止重试,保留最后的 `pause_key` 和 `pause_revision`。恢复原因固定为 `start bounded schedule verification`,暂停原因为 `stop bounded schedule verification`。收尾使用独立上下文,最多 5 秒,多个已知计划并发暂停。
|
||||
|
||||
`pause_confirmed=true` 只表示停止后续触发,已经生成的任务仍可执行。截止后报告是观察快照,任务可能在工具停止后完成;应沿原计划的触发历史、任务与尝试查询核对。工具不删除计划、任务、操作回执或审计。若创建回执不明、暂停不明或进程被强杀,报告不构成清理完成的证明。
|
||||
|
||||
## 验证范围
|
||||
|
||||
复现样本、原始 JSON、构建哈希和实际工具链见[定时测量报告](../reports/phase-6-schedule-load.md)。该工具覆盖固定间隔的同时触发;Cron/DST、其他漏跑和重叠策略、计划版本竞争由原调度功能集成测试覆盖。此次样本不证明这些场景的容量,也不证明长期积压、资源曲线、跨故障域高可用或生产 SLA。
|
||||
10
docs/reports/data/phase-6-schedule-load/database.json
Normal file
10
docs/reports/data/phase-6-schedule-load/database.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"mysql": "8.4.10",
|
||||
"tasks": 158,
|
||||
"schedules": 38,
|
||||
"occurrences": 158,
|
||||
"succeeded_tasks": 154,
|
||||
"foreign_key_count": 0,
|
||||
"unpaused_schedules": 0,
|
||||
"duplicate_tasks_in_occurrences": 0
|
||||
}
|
||||
110
docs/reports/data/phase-6-schedule-load/deadline-24.json
Normal file
110
docs/reports/data/phase-6-schedule-load/deadline-24.json
Normal file
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"run_id": "abd51b013ef637e214f3b868d73d1e3c",
|
||||
"go_version": "go1.25.14",
|
||||
"goos": "linux",
|
||||
"goarch": "arm64",
|
||||
"started_at": "2026-09-20T05:52:03.516120763Z",
|
||||
"finished_at": "2026-09-20T05:52:08.536435043Z",
|
||||
"requests_per_schedule": 12,
|
||||
"schedules": 2,
|
||||
"expected_occurrences": 24,
|
||||
"workers": 2,
|
||||
"capacity_per_worker": 2,
|
||||
"interval_ms": 1000,
|
||||
"start_delay_ms": 1000,
|
||||
"run_timeout_ms": 5000,
|
||||
"poll_interval_ms": 100,
|
||||
"http_timeout_ms": 5000,
|
||||
"queue": {
|
||||
"max_unfinished_tasks": 100000,
|
||||
"unfinished_tasks": "0",
|
||||
"id": "17f6a89f5d68895600d3bb2185fbadb4",
|
||||
"namespace_id": "65aefc4c4d7c0441cda02794632c7408",
|
||||
"name": "schedule",
|
||||
"paused": false,
|
||||
"max_concurrency": 4,
|
||||
"rate_per_second": 10,
|
||||
"revision": "1"
|
||||
},
|
||||
"schedule_start": "2026-09-20T05:52:04.517253Z",
|
||||
"schedule_end": "2026-09-20T05:52:16.517253Z",
|
||||
"plans": [
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:52:03.517994Z",
|
||||
"index": 0,
|
||||
"id": "c7d2bc3caea7b7e5ea7403783e98306a",
|
||||
"create_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-00-create",
|
||||
"resume_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-00-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": false,
|
||||
"pause_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-00-pause-0",
|
||||
"pause_revision": "4",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 3,
|
||||
"fired": 3,
|
||||
"verified_success": 1
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:52:03.521008Z",
|
||||
"index": 1,
|
||||
"id": "f86e04e63a42f805d5c146b2594d4d0f",
|
||||
"create_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-01-create",
|
||||
"resume_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-01-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": false,
|
||||
"pause_key": "schedule-abd51b013ef637e214f3b868d73d1e3c-01-pause-0",
|
||||
"pause_revision": "4",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 3,
|
||||
"fired": 3,
|
||||
"verified_success": 1
|
||||
}
|
||||
],
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 2,
|
||||
"unobserved": 18,
|
||||
"unverified": 4,
|
||||
"handler_calls": 2,
|
||||
"duplicate_invocations": 0,
|
||||
"unconfirmed_invocations": 0,
|
||||
"worker_started": 2,
|
||||
"worker_reconnects": 0,
|
||||
"worker_renewals_confirmed": 0,
|
||||
"trigger_lag": {
|
||||
"count": 2,
|
||||
"p50_ms": 504.563,
|
||||
"p95_ms": 515.272,
|
||||
"p99_ms": 515.272,
|
||||
"max_ms": 515.272
|
||||
},
|
||||
"queue_wait": {
|
||||
"count": 2,
|
||||
"p50_ms": 1530.163,
|
||||
"p95_ms": 1535.71,
|
||||
"p99_ms": 1535.71,
|
||||
"max_ms": 1535.71
|
||||
},
|
||||
"authorized_execution": {
|
||||
"count": 2,
|
||||
"p50_ms": 9.803,
|
||||
"p95_ms": 20.264,
|
||||
"p99_ms": 20.264,
|
||||
"max_ms": 20.264
|
||||
},
|
||||
"completion": {
|
||||
"count": 2,
|
||||
"p50_ms": 2055.238,
|
||||
"p95_ms": 2060.537,
|
||||
"p99_ms": 2060.537,
|
||||
"max_ms": 2060.537
|
||||
},
|
||||
"errors": {
|
||||
"RUN_TIMEOUT": 1
|
||||
},
|
||||
"complete": false
|
||||
}
|
||||
113
docs/reports/data/phase-6-schedule-load/environment.json
Normal file
113
docs/reports/data/phase-6-schedule-load/environment.json
Normal file
@@ -0,0 +1,113 @@
|
||||
{
|
||||
"date_local": "2026-09-20",
|
||||
"timezone": "Asia/Shanghai",
|
||||
"source_base_commit": "71c33ea",
|
||||
"declared_go": "1.27.1",
|
||||
"test_go": "go1.25.14",
|
||||
"temporary_modfile": true,
|
||||
"mysql": "8.4.10",
|
||||
"architecture": "arm64",
|
||||
"docker_vm_cpus": 12,
|
||||
"docker_vm_memory_bytes": 12529274880,
|
||||
"orbit_processes": 1,
|
||||
"mysql_nodes": 1,
|
||||
"worker_processes": 1,
|
||||
"worker_connections": 2,
|
||||
"queue_max_concurrency": 4,
|
||||
"queue_rate_per_second": 10,
|
||||
"metrics_enabled": false,
|
||||
"network": "Go runner shares disposable MySQL container network namespace; loopback HTTP/WS/MySQL; no host port",
|
||||
"dedicated_cpu_memory_limits": false,
|
||||
"fresh_disposable_database": true,
|
||||
"cleanup": "Test-created containers stopped and removed; no existing databases used",
|
||||
"sdk_checks": [
|
||||
"go test -race ./...",
|
||||
"go vet ./...",
|
||||
"go build ./...",
|
||||
"go list -deps ./...; no database/server dependencies"
|
||||
],
|
||||
"modfile_note": "All Go commands use GOWORK=off and temporary sdk.mod/root.mod changing only declared Go version for available toolchain; repository go.mod unchanged",
|
||||
"sample_commands": [
|
||||
[
|
||||
"-schedules",
|
||||
"4",
|
||||
"-requests",
|
||||
"6",
|
||||
"-workers",
|
||||
"2",
|
||||
"-capacity",
|
||||
"4",
|
||||
"-start-delay",
|
||||
"5s",
|
||||
"-run-timeout",
|
||||
"90s",
|
||||
"-poll-interval",
|
||||
"100ms"
|
||||
],
|
||||
[
|
||||
"-schedules",
|
||||
"32",
|
||||
"-requests",
|
||||
"4",
|
||||
"-workers",
|
||||
"2",
|
||||
"-capacity",
|
||||
"4",
|
||||
"-start-delay",
|
||||
"5s",
|
||||
"-run-timeout",
|
||||
"90s",
|
||||
"-poll-interval",
|
||||
"100ms"
|
||||
],
|
||||
[
|
||||
"-schedules",
|
||||
"2",
|
||||
"-requests",
|
||||
"12",
|
||||
"-workers",
|
||||
"2",
|
||||
"-capacity",
|
||||
"2",
|
||||
"-start-delay",
|
||||
"1s",
|
||||
"-run-timeout",
|
||||
"5s",
|
||||
"-poll-interval",
|
||||
"100ms"
|
||||
]
|
||||
],
|
||||
"exit_codes": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"schema_verification": {
|
||||
"schema_version": 28,
|
||||
"migration_count": 28,
|
||||
"foreign_key_count": 0,
|
||||
"required_index_count": 6,
|
||||
"complete": true
|
||||
},
|
||||
"source_sha256": {
|
||||
"sdk/go/cmd/orbit-schedule-load/handler.go": "560426c5eaaad08cce386b304d0b4673757c1d82978d39557b6a72c8b00f12f8",
|
||||
"sdk/go/cmd/orbit-schedule-load/main.go": "2378bc59bde8e219618848206f5e4aa3e5158fdb0f419b1b8c286754e5e74136",
|
||||
"sdk/go/cmd/orbit-schedule-load/measure.go": "93bf30957af66631acc202fb65bab81dab2ea6c40259ad1d619eb47d23935832",
|
||||
"sdk/go/cmd/orbit-schedule-load/measure_test.go": "bd5cf497c427678edf29d6b48af9e95c410d656470f2c7340de19dc5705e9772",
|
||||
"sdk/go/cmd/orbit-schedule-load/observe.go": "50d43aa8b4b4690ceac976f3d65135a79fcf17530f5263ff5af5453074ad9e90",
|
||||
"sdk/go/cmd/orbit-schedule-load/report.go": "5a949c2904c21116d19f219d18a2e81a1153f578d4b2d7907b43bbd522f09b32"
|
||||
},
|
||||
"binary_sha256": {
|
||||
"orbit": "6290b47a74459cdc9f45c4288df7e0cf16ed67c1bfff7acb4e6e9fd4b636c9d7",
|
||||
"orbit-admin": "9325990fdedbc5faeb351b1333fd33b27ea35d2d0ee6b59b425deb30e973b396",
|
||||
"orbit-migrate": "56be44ae4e5d387aa13a6d0cd2e22a533a2ca6d4845b45548e7feac8f0c56635",
|
||||
"orbit-schedule-load": "67cf4d0ee141e2669744dcce33b032ab8ffd8c463d41662c647840e8ae1510db"
|
||||
},
|
||||
"artifacts_sha256": {
|
||||
"database.json": "462a9ea2921c1960bf0a4d97d846129af7eb7ba37784acad55b2bfb07cd1c35d",
|
||||
"deadline-24.json": "035696ab376dae1b5f8bcfa94033a94690d99d38c2bbc4d191299c7d1786457e",
|
||||
"sample-128.json": "bdfe818a94cfcb6184ca3fc0e057802f7f3cb8c223af43bca4a44488ba444fe5",
|
||||
"sample-24.json": "af78f339c497f5ddca02560005ece49354a98a1343bd08b3dac25c3fcbbbf3ae",
|
||||
"schema.json": "9ee118dd4306cddde44582b8d3983f2cd25331148d993672fd70cca86dc06d0a"
|
||||
}
|
||||
}
|
||||
618
docs/reports/data/phase-6-schedule-load/sample-128.json
Normal file
618
docs/reports/data/phase-6-schedule-load/sample-128.json
Normal file
@@ -0,0 +1,618 @@
|
||||
{
|
||||
"run_id": "7056d28993e47c01647892a53952c7b1",
|
||||
"go_version": "go1.25.14",
|
||||
"goos": "linux",
|
||||
"goarch": "arm64",
|
||||
"started_at": "2026-09-20T05:51:38.180345251Z",
|
||||
"finished_at": "2026-09-20T05:52:03.51048843Z",
|
||||
"requests_per_schedule": 4,
|
||||
"schedules": 32,
|
||||
"expected_occurrences": 128,
|
||||
"workers": 2,
|
||||
"capacity_per_worker": 4,
|
||||
"interval_ms": 1000,
|
||||
"start_delay_ms": 5000,
|
||||
"run_timeout_ms": 90000,
|
||||
"poll_interval_ms": 100,
|
||||
"http_timeout_ms": 5000,
|
||||
"queue": {
|
||||
"max_unfinished_tasks": 100000,
|
||||
"unfinished_tasks": "0",
|
||||
"id": "17f6a89f5d68895600d3bb2185fbadb4",
|
||||
"namespace_id": "65aefc4c4d7c0441cda02794632c7408",
|
||||
"name": "schedule",
|
||||
"paused": false,
|
||||
"max_concurrency": 4,
|
||||
"rate_per_second": 10,
|
||||
"revision": "1"
|
||||
},
|
||||
"schedule_start": "2026-09-20T05:51:43.181786Z",
|
||||
"schedule_end": "2026-09-20T05:51:47.181786Z",
|
||||
"plans": [
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.182744Z",
|
||||
"index": 0,
|
||||
"id": "fcdd4ba396d4eaa0ee0fa972c699b051",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-00-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-00-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-00-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.185432Z",
|
||||
"index": 1,
|
||||
"id": "983feafac5dbdb69bb39c7e8b89517b7",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-01-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-01-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-01-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.187835Z",
|
||||
"index": 2,
|
||||
"id": "51f0d54d467cef5325122ecda038ce78",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-02-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-02-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-02-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.190392Z",
|
||||
"index": 3,
|
||||
"id": "f01d813f12e16b4b47929fe927f1bc4a",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-03-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-03-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-03-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.193883Z",
|
||||
"index": 4,
|
||||
"id": "0b498972511743f1c735a26da75a29d7",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-04-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-04-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-04-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.196309Z",
|
||||
"index": 5,
|
||||
"id": "97000fdccd6ae61fbebeaec477151714",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-05-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-05-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-05-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.198861Z",
|
||||
"index": 6,
|
||||
"id": "4d369519d8fe46cf787f6d1018cb4253",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-06-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-06-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-06-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.203173Z",
|
||||
"index": 7,
|
||||
"id": "c834d23a6ec817df44cea6794c6f6639",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-07-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-07-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-07-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.205847Z",
|
||||
"index": 8,
|
||||
"id": "8a58343f784b63bc915d11041712b4f2",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-08-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-08-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-08-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.20941Z",
|
||||
"index": 9,
|
||||
"id": "c7212dab959cffb639fe39798bf20385",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-09-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-09-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-09-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.211796Z",
|
||||
"index": 10,
|
||||
"id": "1c2ae5b9d1583d0607b34fe0ade46621",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-10-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-10-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-10-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.213893Z",
|
||||
"index": 11,
|
||||
"id": "cb44442045923c5fe2687f8840c9fb37",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-11-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-11-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-11-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.219422Z",
|
||||
"index": 12,
|
||||
"id": "2f2c444436c2ee51d0eefc2e78a2e799",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-12-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-12-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-12-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.222664Z",
|
||||
"index": 13,
|
||||
"id": "5a49395323073eff76470d378cc2bc01",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-13-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-13-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-13-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.225018Z",
|
||||
"index": 14,
|
||||
"id": "6fe18947edcbd95aa4288b1ef2611124",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-14-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-14-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-14-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.22847Z",
|
||||
"index": 15,
|
||||
"id": "582591eb99f06745e3fa07ea54b54006",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-15-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-15-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-15-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.231576Z",
|
||||
"index": 16,
|
||||
"id": "829e2428e144ab924715b255091c3757",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-16-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-16-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-16-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.234664Z",
|
||||
"index": 17,
|
||||
"id": "3204baf132a3cb7954d59c5a84896504",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-17-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-17-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-17-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.239704Z",
|
||||
"index": 18,
|
||||
"id": "85a944a2dbf10940e30e306eeb6207c1",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-18-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-18-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-18-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.242679Z",
|
||||
"index": 19,
|
||||
"id": "754ea55797e8574625385c4762fdb346",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-19-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-19-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-19-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.245641Z",
|
||||
"index": 20,
|
||||
"id": "b54c4a596e4c900fc915e8845d351e67",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-20-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-20-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-20-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.248371Z",
|
||||
"index": 21,
|
||||
"id": "9b6c85c9a8b6a290ce7ff6dd458638eb",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-21-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-21-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-21-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.251722Z",
|
||||
"index": 22,
|
||||
"id": "25171ecf0b2b5aa5ac96abd06de41ba0",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-22-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-22-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-22-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.25387Z",
|
||||
"index": 23,
|
||||
"id": "902b9ad707391d67f76ba6e70cffcb3f",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-23-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-23-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-23-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.256482Z",
|
||||
"index": 24,
|
||||
"id": "4214b53489a8cdb75202b639ee574427",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-24-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-24-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-24-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.258774Z",
|
||||
"index": 25,
|
||||
"id": "4d4c51d538861102eac9fa76f4d90df4",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-25-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-25-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-25-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.261484Z",
|
||||
"index": 26,
|
||||
"id": "351abd4c1b1cccb07ec1f988c199c2f0",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-26-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-26-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-26-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.263584Z",
|
||||
"index": 27,
|
||||
"id": "c3e19c402d45239b04b20a7adc526141",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-27-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-27-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-27-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.26587Z",
|
||||
"index": 28,
|
||||
"id": "5652ed089f0834abaad62311c898007f",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-28-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-28-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-28-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.27058Z",
|
||||
"index": 29,
|
||||
"id": "2cbab1577b43ae69bf308687f3d67785",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-29-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-29-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-29-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.27287Z",
|
||||
"index": 30,
|
||||
"id": "8d3c0d2151c69e4c50dcd476c6737eee",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-30-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-30-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-30-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:38.275023Z",
|
||||
"index": 31,
|
||||
"id": "0b90d1c46cd178c49d63e7dfb5125057",
|
||||
"create_key": "schedule-7056d28993e47c01647892a53952c7b1-31-create",
|
||||
"resume_key": "schedule-7056d28993e47c01647892a53952c7b1-31-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-7056d28993e47c01647892a53952c7b1-31-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 4,
|
||||
"fired": 4,
|
||||
"verified_success": 4
|
||||
}
|
||||
],
|
||||
"occurrences": 128,
|
||||
"fired": 128,
|
||||
"verified_success": 128,
|
||||
"unobserved": 0,
|
||||
"unverified": 0,
|
||||
"handler_calls": 128,
|
||||
"duplicate_invocations": 0,
|
||||
"unconfirmed_invocations": 0,
|
||||
"worker_started": 128,
|
||||
"worker_reconnects": 0,
|
||||
"worker_renewals_confirmed": 0,
|
||||
"trigger_lag": {
|
||||
"count": 128,
|
||||
"p50_ms": 992.747,
|
||||
"p95_ms": 1964.089,
|
||||
"p99_ms": 1985.97,
|
||||
"max_ms": 1992.747
|
||||
},
|
||||
"queue_wait": {
|
||||
"count": 128,
|
||||
"p50_ms": 8192.259,
|
||||
"p95_ms": 14277.183,
|
||||
"p99_ms": 15230.422,
|
||||
"max_ms": 15232.355
|
||||
},
|
||||
"authorized_execution": {
|
||||
"count": 128,
|
||||
"p50_ms": 8.856,
|
||||
"p95_ms": 20.414,
|
||||
"p99_ms": 25.195,
|
||||
"max_ms": 34.262
|
||||
},
|
||||
"completion": {
|
||||
"count": 128,
|
||||
"p50_ms": 9191.23,
|
||||
"p95_ms": 16200.649,
|
||||
"p99_ms": 17172.61,
|
||||
"max_ms": 17175.759
|
||||
},
|
||||
"errors": {},
|
||||
"complete": true
|
||||
}
|
||||
142
docs/reports/data/phase-6-schedule-load/sample-24.json
Normal file
142
docs/reports/data/phase-6-schedule-load/sample-24.json
Normal file
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"run_id": "278555409a9d68e7de5b635087c73d04",
|
||||
"go_version": "go1.25.14",
|
||||
"goos": "linux",
|
||||
"goarch": "arm64",
|
||||
"started_at": "2026-09-20T05:51:25.035193676Z",
|
||||
"finished_at": "2026-09-20T05:51:38.173794626Z",
|
||||
"requests_per_schedule": 6,
|
||||
"schedules": 4,
|
||||
"expected_occurrences": 24,
|
||||
"workers": 2,
|
||||
"capacity_per_worker": 4,
|
||||
"interval_ms": 1000,
|
||||
"start_delay_ms": 5000,
|
||||
"run_timeout_ms": 90000,
|
||||
"poll_interval_ms": 100,
|
||||
"http_timeout_ms": 5000,
|
||||
"queue": {
|
||||
"max_unfinished_tasks": 100000,
|
||||
"unfinished_tasks": "0",
|
||||
"id": "17f6a89f5d68895600d3bb2185fbadb4",
|
||||
"namespace_id": "65aefc4c4d7c0441cda02794632c7408",
|
||||
"name": "schedule",
|
||||
"paused": false,
|
||||
"max_concurrency": 4,
|
||||
"rate_per_second": 10,
|
||||
"revision": "1"
|
||||
},
|
||||
"schedule_start": "2026-09-20T05:51:30.039771Z",
|
||||
"schedule_end": "2026-09-20T05:51:36.039771Z",
|
||||
"plans": [
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.043209Z",
|
||||
"index": 0,
|
||||
"id": "713696f120e328bcedd8b307432745ec",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-00-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-00-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-00-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.05288Z",
|
||||
"index": 1,
|
||||
"id": "2c7cc5f7278677e48c1fcb594f762a99",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-01-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-01-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-01-pause-0",
|
||||
"pause_revision": "6",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.057968Z",
|
||||
"index": 2,
|
||||
"id": "147de621f4e54d96d1a0c90fae9bb3ca",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-02-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-02-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-02-pause-0",
|
||||
"pause_revision": "6",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
},
|
||||
{
|
||||
"calendar_version": "go1.27.1-b2d18a7c8fa8",
|
||||
"effective_at": "2026-09-20T05:51:25.063146Z",
|
||||
"index": 3,
|
||||
"id": "93272d0b600756362052ec09dac56f7f",
|
||||
"create_key": "schedule-278555409a9d68e7de5b635087c73d04-03-create",
|
||||
"resume_key": "schedule-278555409a9d68e7de5b635087c73d04-03-resume",
|
||||
"resume_revision": "1",
|
||||
"resumed": true,
|
||||
"exhausted": true,
|
||||
"pause_key": "schedule-278555409a9d68e7de5b635087c73d04-03-pause-0",
|
||||
"pause_revision": "5",
|
||||
"pause_confirmed": true,
|
||||
"occurrences": 6,
|
||||
"fired": 6,
|
||||
"verified_success": 6
|
||||
}
|
||||
],
|
||||
"occurrences": 24,
|
||||
"fired": 24,
|
||||
"verified_success": 24,
|
||||
"unobserved": 0,
|
||||
"unverified": 0,
|
||||
"handler_calls": 24,
|
||||
"duplicate_invocations": 0,
|
||||
"unconfirmed_invocations": 0,
|
||||
"worker_started": 24,
|
||||
"worker_reconnects": 0,
|
||||
"worker_renewals_confirmed": 0,
|
||||
"trigger_lag": {
|
||||
"count": 24,
|
||||
"p50_ms": 999.646,
|
||||
"p95_ms": 2005.396,
|
||||
"p99_ms": 2015.96,
|
||||
"max_ms": 2015.96
|
||||
},
|
||||
"queue_wait": {
|
||||
"count": 24,
|
||||
"p50_ms": 1111.19,
|
||||
"p95_ms": 2126.701,
|
||||
"p99_ms": 2130.041,
|
||||
"max_ms": 2130.041
|
||||
},
|
||||
"authorized_execution": {
|
||||
"count": 24,
|
||||
"p50_ms": 10.082,
|
||||
"p95_ms": 21.111,
|
||||
"p99_ms": 27.578,
|
||||
"max_ms": 27.578
|
||||
},
|
||||
"completion": {
|
||||
"count": 24,
|
||||
"p50_ms": 3059.006,
|
||||
"p95_ms": 4067.032,
|
||||
"p99_ms": 4094.876,
|
||||
"max_ms": 4094.876
|
||||
},
|
||||
"errors": {},
|
||||
"complete": true
|
||||
}
|
||||
7
docs/reports/data/phase-6-schedule-load/schema.json
Normal file
7
docs/reports/data/phase-6-schedule-load/schema.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"schema_version": 28,
|
||||
"migration_count": 28,
|
||||
"foreign_key_count": 0,
|
||||
"required_index_count": 6,
|
||||
"complete": true
|
||||
}
|
||||
30
docs/reports/data/phase-6-schedule-load/sdk-check.log
Normal file
30
docs/reports/data/phase-6-schedule-load/sdk-check.log
Normal file
@@ -0,0 +1,30 @@
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-exec-load (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-load (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-schedule-load (cached)
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/cmd/orbit-workflow-load (cached)
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/application-resources [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/batch [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/cancellation [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/delayed-task [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/event-protocol [no test files]
|
||||
ok git.yuntuo.hk/k2safe/orbit/sdk/go/examples/file-conversion (cached)
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/health [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/history [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/internal/flowdemo [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/keyed-concurrency [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/priority [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/recovery [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/resources [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/retry [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/schedules [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/subscriptions [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/task-query [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/tasks [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/worker [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/worker-protocol [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-definition [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-poll [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-query [no test files]
|
||||
? git.yuntuo.hk/k2safe/orbit/sdk/go/examples/workflow-recovery [no test files]
|
||||
42
docs/reports/phase-6-schedule-load.md
Normal file
42
docs/reports/phase-6-schedule-load.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# P6 定时集中触发测量
|
||||
|
||||
日期:2026-09-20。本批新增独立 SDK 命令 `orbit-schedule-load`,完成多个固定间隔计划同一时刻触发、真实 Worker 执行和持久结果核验。P6/P7 仍进行中;样本不作为生产容量或高可用结论。
|
||||
|
||||
## 已实现与实际检查
|
||||
|
||||
计划先暂停创建再恢复,固定起止/间隔、版本 1、UTC 时区快照、CATCH_UP/PARALLEL;每任务只有一次尝试。工具核对预期时间槽、触发唯一性、任务身份/模板/结果、成功尝试和时间顺序、固定来源及本地单次调用,并等待计划耗尽。所有退出路径执行有限 Worker 收尾和计划暂停;传输不明不换键重试,保留原操作身份。
|
||||
|
||||
初次真实连接发现工具误把 API `v1` 当成时区快照标识,修正为保存服务端返回的具体标识和版本生效时间,后续读取核对不变。下表和原始文件全部来自修正后**重新构建并运行**的二进制;首次失败的创建发生在另一已清理的一次性数据库,不计入最终样本。
|
||||
|
||||
SDK 全模块 `go test -race ./...`、`go vet ./...`、`go build ./...` 通过,完整依赖图没有服务端或 MySQL 驱动依赖。新增单测覆盖等待不算成功、重复轮询不重复计数、错配输入/来源/历史/时间、跨计划重复任务、本地并发重复调用、暂停明确冲突与传输不明的处理差异、原时区快照/生效时间不变及部分分母。标准 `scripts/test-mysql.sh` 已接入工具编译和 2×3 触发样本,脚本语法检查通过;本批没有重新跑整份标准集成脚本。
|
||||
|
||||
## 环境与结果
|
||||
|
||||
一次性 MySQL 8.4.10,1 个 Orbit 进程,1 个测量进程中 2 个 Worker 连接。共享本机 Docker VM,12 个 CPU、12,529,274,880 字节内存,无独占资源额度;其他工作负载可能影响结果。队列并发上限 4、每秒开始授权上限 10,工具未修改配置;指标监听关闭。Go/MySQL 容器共享网络命名空间,仅本机回环通信,无宿主机发布端口。
|
||||
|
||||
实际工具链是 **Go 1.25.14 Linux arm64**,通过临时 modfile 使用,仓库声明的 Go 1.27.1 未改。本批不能替代正式工具链全量验收。精确配置、源码/二进制哈希、退出码和原始文件哈希见[环境清单](data/phase-6-schedule-load/environment.json),SDK 输出见[检查日志](data/phase-6-schedule-load/sdk-check.log)。
|
||||
|
||||
| 样本 | 预期触发 | 已观察/生成任务 | 已核验成功 | 本地调用/重复 | 结果 |
|
||||
| --- | ---: | ---: | ---: | ---: | --- |
|
||||
| 4计划×6次,1秒间隔 | 24 | 24/24 | 24 | 24/0 | `complete=true`,退出0 |
|
||||
| 32计划×4次,1秒间隔 | 128 | 128/128 | 128 | 128/0 | `complete=true`,退出0 |
|
||||
| 2计划×12次,1秒间隔,整次仅5秒 | 24 | 6/6 | 2 | 2/0 | `RUN_TIMEOUT`,`complete=false`,退出1 |
|
||||
|
||||
原始结果:[24次](data/phase-6-schedule-load/sample-24.json)、[128次](data/phase-6-schedule-load/sample-128.json)、[截止负例](data/phase-6-schedule-load/deadline-24.json)。正常组各有两个 Worker,每个容量4;负例每个容量2。正常组预留5秒设置,整体截止90秒;负例预留1秒设置,整体截止5秒。每次HTTP截止5秒,轮询100毫秒。
|
||||
|
||||
| 正常样本 | 触发延迟P95 | 排队至授权P95 | 授权执行P95 | 计划时间至完成P95 |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| 24次 | 2005.396ms | 2126.701ms | 21.111ms | 4067.032ms |
|
||||
| 128次 | 1964.089ms | 14277.183ms | 20.414ms | 16200.649ms |
|
||||
|
||||
32 个同时触发的计划在现有并发/速率限制下形成排队,上表记录这次现象;未做控制变量或持续资源采样,不能据此判定瓶颈或推导生产吞吐。耗时分布均由持久时间计算,分母分别为24和128,只包含已核验成功任务。
|
||||
|
||||
负例保留18个未观察到的计划触发点、4个已经触发但未核验成功的任务,没有把超时隐藏为成功。`pause_confirmed` 在全部计划中为真;暂停不取消已生成任务。测量后独立数据库回读共有38个计划且全部暂停、158个触发记录、158个任务,其中154个成功,触发记录间重复任务数0;其余4个任务没有被该样本核验为成功,不能推测为已撤销或最终失败。见[数据库快照](data/phase-6-schedule-load/database.json)。
|
||||
|
||||
`orbit-admin verify` 独立确认 schema version28、28条迁移记录、6个必需索引和**实际外键0**,见[结构核验](data/phase-6-schedule-load/schema.json)。本批未修改数据库模型或迁移;不可变旧迁移仍保留历史外键及其前向清理记录。
|
||||
|
||||
## 复现与下一步
|
||||
|
||||
按[工具手册](../api/schedule-load.md)创建隔离命名空间/队列,签发 Worker 与计划权限,依次运行环境清单中的三组参数;前两组应退出0,第三组应退出1并报告剩余分母。使用新创建的一次性MySQL、当前源码构建的服务端和测量工具,最终执行 `orbit-admin verify`。校验时不得把源码修改后的哈希附到之前构建的二进制结果。
|
||||
|
||||
当前只验证同节点、固定间隔、有限计划数的集中触发和超时收尾。Cron/DST及其他策略的功能测试已有独立记录,本批未做这些场景的容量测量。下一步继续长期积压、资源曲线、生产采集/通知、目标数据库拓扑与正式工具链/版本兼容门禁。
|
||||
@@ -20,6 +20,8 @@
|
||||
| 真实Worker执行测量 | `orbit-exec-load`;最终短/混合/中长及截止不足四组,环境及原始JSON见[测量报告](phase-6-execution-load.md) | 96+96+6项全部逐项核验,长任务18次续租;24项截止负例按预期非零退出。SDK全模块竞态/vet/build通过,生产容量未验收 |
|
||||
| 真实Weave流程测量 | `orbit-workflow-load`;24实例、固定版本双分支并行,原始JSON见[流程测量报告](phase-6-workflow-load.md) | 24/24实例成功,48/48任务尝试与来源、输出逐项核验,重复调用0;生产容量未验收 |
|
||||
|
||||
| 真实定时集中触发测量 | `orbit-schedule-load`;4×6及32×4触发,2×12截止负例,见[定时测量报告](phase-6-schedule-load.md) | 正常152项逐项核验;负例18个未观察点、4个未核验任务,非零退出;38个计划均暂停,实际库外键0。SDK全模块竞态/vet/build通过;生产容量未验收 |
|
||||
|
||||
## 当前环境仍未覆盖
|
||||
|
||||
此前使用容器网络别名运行存储集成时,两组 COMMIT 故障测试曾因自身 `127.0.0.1` 明文连接前置条件被拒绝;本轮已改用共享网络命名空间单独复跑并通过,因此不再把它们列为未验证场景。共享网络命名空间只解决测试进程的 loopback 观察条件,不改变生产部署约束。
|
||||
|
||||
Reference in New Issue
Block a user