feat: 添加图床归档任务支持,优化归档逻辑和错误处理

This commit is contained in:
2026-04-26 13:20:14 +08:00
parent be4c27532f
commit 3559e8adc6
10 changed files with 667 additions and 138 deletions
+8
View File
@@ -28,12 +28,20 @@ CREATE TABLE IF NOT EXISTS `image_generations` (
`upstream_response` JSON NULL COMMENT '完整上游生图接口响应',
`hosted_response` JSON NULL COMMENT '完整 Lsky 图床上传接口响应',
`error_message` TEXT NULL COMMENT '失败原因或图床归档失败提示',
`archive_status` ENUM('NOT_REQUIRED', 'PENDING', 'RUNNING', 'SUCCEEDED', 'FAILED') NOT NULL DEFAULT 'NOT_REQUIRED' COMMENT '图床归档任务状态',
`archive_attempts` INT NOT NULL DEFAULT 0 COMMENT '图床归档已尝试次数',
`archive_next_run_at` DATETIME(3) NULL COMMENT '图床归档下次可执行时间',
`archive_locked_at` DATETIME(3) NULL COMMENT '图床归档任务被 worker 锁定的时间',
`archive_locked_by` VARCHAR(191) NULL COMMENT '图床归档任务 worker 标识',
`archive_last_error` TEXT NULL COMMENT '图床归档最近一次失败摘要',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
`deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
PRIMARY KEY (`id`),
INDEX `image_generations_user_id_created_at_idx` (`user_id`, `created_at`),
INDEX `image_generations_status_idx` (`status`),
INDEX `image_generations_archive_status_archive_next_run_at_idx` (`archive_status`, `archive_next_run_at`),
INDEX `image_generations_archive_locked_at_idx` (`archive_locked_at`),
INDEX `image_generations_deleted_at_idx` (`deleted_at`),
CONSTRAINT `image_generations_user_id_fkey`
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)