feat(platform): Complete Postgres-Only architecture refactoring (Phase 1-7)
Major Changes: - Implement Platform-Only architecture pattern (unified task management) - Add PostgresCacheAdapter for unified caching (platform_schema.app_cache) - Add PgBossQueue for job queue management (platform_schema.job) - Implement CheckpointService using job.data (generic for all modules) - Add intelligent threshold-based dual-mode processing (THRESHOLD=50) - Add task splitting mechanism (auto chunk size recommendation) - Refactor ASL screening service with smart mode selection - Refactor DC extraction service with smart mode selection - Register workers for ASL and DC modules Technical Highlights: - All task management data stored in platform_schema.job.data (JSONB) - Business tables remain clean (no task management fields) - CheckpointService is generic (shared by all modules) - Zero code duplication (DRY principle) - Follows 3-layer architecture principle - Zero additional cost (no Redis needed, save 8400 CNY/year) Code Statistics: - New code: ~1750 lines - Modified code: ~500 lines - Test code: ~1800 lines - Documentation: ~3000 lines Testing: - Unit tests: 8/8 passed - Integration tests: 2/2 passed - Architecture validation: passed - Linter errors: 0 Files: - Platform layer: PostgresCacheAdapter, PgBossQueue, CheckpointService, utils - ASL module: screeningService, screeningWorker - DC module: ExtractionController, extractionWorker - Tests: 11 test files - Docs: Updated 4 key documents Status: Phase 1-7 completed, Phase 8-9 pending
This commit is contained in:
@@ -2,7 +2,8 @@
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
provider = "prisma-client-js"
|
||||
previewFeatures = ["multiSchema"]
|
||||
}
|
||||
|
||||
datasource db {
|
||||
@@ -11,6 +12,23 @@ datasource db {
|
||||
schemas = ["platform_schema", "aia_schema", "pkb_schema", "asl_schema", "common_schema", "dc_schema", "rvw_schema", "admin_schema", "ssa_schema", "st_schema", "public"]
|
||||
}
|
||||
|
||||
// ==================== 平台基础设施 (Platform Infrastructure) ====================
|
||||
|
||||
/// 应用缓存表 - Postgres-Only架构
|
||||
/// 用于替代Redis缓存,支持LLM结果缓存、健康检查缓存等
|
||||
model AppCache {
|
||||
id Int @id @default(autoincrement())
|
||||
key String @unique @db.VarChar(500)
|
||||
value Json
|
||||
expiresAt DateTime @map("expires_at")
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
|
||||
@@index([expiresAt], name: "idx_app_cache_expires")
|
||||
@@index([key, expiresAt], name: "idx_app_cache_key_expires")
|
||||
@@map("app_cache")
|
||||
@@schema("platform_schema")
|
||||
}
|
||||
|
||||
// ==================== 用户模块 ====================
|
||||
|
||||
model User {
|
||||
@@ -576,6 +594,9 @@ model AslScreeningTask {
|
||||
failedItems Int @default(0) @map("failed_items")
|
||||
conflictItems Int @default(0) @map("conflict_items")
|
||||
|
||||
// ✅ 任务拆分和断点续传由 pg-boss (platform_schema.job.data) 统一管理
|
||||
// 不在业务表中存储这些信息,符合3层架构原则
|
||||
|
||||
// 时间信息
|
||||
startedAt DateTime? @map("started_at")
|
||||
completedAt DateTime? @map("completed_at")
|
||||
@@ -798,6 +819,9 @@ model DCExtractionTask {
|
||||
// 错误信息
|
||||
error String? @map("error")
|
||||
|
||||
// ✅ 任务拆分和断点续传由 pg-boss (platform_schema.job.data) 统一管理
|
||||
// 不在业务表中存储这些信息,符合3层架构原则
|
||||
|
||||
// 时间戳
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
startedAt DateTime? @map("started_at")
|
||||
|
||||
Reference in New Issue
Block a user