fix: 完善自动导入异常中断与恢复

- 自动导入基础设施异常触发批次熔断,保留完整日志并输出安全错误信息

- 增加恢复令牌与租约围栏、无文档失败项重建及消息退避机制

- 前端展示中断状态并在状态请求失败后自动恢复轮询

- 补充批次中断迁移、配置与并发异常路径测试
This commit is contained in:
2026-08-10 11:26:00 +08:00
parent 54d85ae460
commit bae7b18977
33 changed files with 3725 additions and 221 deletions

View File

@@ -44,6 +44,9 @@ easyflow:
consumer-batch-size: 200
consumer-block-timeout: 2000ms
pending-claim-idle: 60000ms
consumer-failure-initial-backoff: 1s
consumer-failure-max-backoff: 30s
consumer-failure-log-interval: 60s
max-retry: 16
consumer-executor:
core-size: 4

View File

@@ -128,6 +128,9 @@ easyflow:
consumer-batch-size: 200
consumer-block-timeout: 2000ms
pending-claim-idle: 60000ms
consumer-failure-initial-backoff: 1s
consumer-failure-max-backoff: 30s
consumer-failure-log-interval: 60s
max-retry: 16
consumer-executor:
core-size: 16

View File

@@ -0,0 +1,21 @@
ALTER TABLE `tb_document_import_batch`
ADD COLUMN `interrupt_code` varchar(64) NULL DEFAULT NULL COMMENT '中断错误码'
AFTER `retryable_failed_count`,
ADD COLUMN `interrupt_message` varchar(500) NULL DEFAULT NULL COMMENT '中断原因'
AFTER `interrupt_code`,
ADD COLUMN `interrupted_at` datetime NULL DEFAULT NULL COMMENT '中断时间'
AFTER `interrupt_message`,
ADD COLUMN `recovery_pending` tinyint(1) NOT NULL DEFAULT 0
COMMENT '是否存在待恢复调度'
AFTER `interrupted_at`,
ADD COLUMN `recovery_file_keys_json` longtext NULL
COMMENT '待恢复文件键 JSON'
AFTER `recovery_pending`,
ADD COLUMN `recovery_token` varchar(64) NULL
COMMENT '恢复调度令牌'
AFTER `recovery_file_keys_json`,
ADD COLUMN `recovery_lease_until` datetime NULL
COMMENT '恢复调度租约到期时间'
AFTER `recovery_token`,
ADD INDEX `idx_document_import_batch_recovery`
(`status`, `recovery_pending`, `modified`, `id`) USING BTREE;