后端移除内嵌OCR子服务
This commit is contained in:
@@ -10,7 +10,7 @@ import webhooksRouter from './routes/webhooks.js'
|
||||
import { ensureAdminUsersBootstrapped } from './services/admin/admin-auth-service.js'
|
||||
import { ensureFulfillmentCatalogBootstrapped } from './services/bootstrap/fulfillment-bootstrap-service.js'
|
||||
import { startScheduledJobs, stopScheduledJobs } from './services/scheduler/scheduler-service.js'
|
||||
import { closeLocalOcrWorker, warmupLocalOcrWorker } from './services/session/ocr.js'
|
||||
import { closeOcrService, warmupOcrService } from './services/session/ocr.js'
|
||||
import { closeAllTencentBrowserSessions, warmupTencentBrowser } from './services/session/session.js'
|
||||
import { buildSuccessPayload } from './utils/http.js'
|
||||
import { createRequestId, logError, logInfo, logWarn } from './utils/logger.js'
|
||||
@@ -227,14 +227,14 @@ async function bootstrapOcr() {
|
||||
startupState.ocr.lastAttemptAt = new Date().toISOString()
|
||||
|
||||
try {
|
||||
await warmupLocalOcrWorker()
|
||||
await warmupOcrService()
|
||||
startupState.ocr.status = 'ready'
|
||||
startupState.ocr.message = 'local OCR ready'
|
||||
logInfo('[startup]', 'local OCR ready')
|
||||
startupState.ocr.message = 'OCR service ready'
|
||||
logInfo('[startup]', 'OCR service ready')
|
||||
} catch (error) {
|
||||
startupState.ocr.status = 'degraded'
|
||||
startupState.ocr.message = formatStartupError(error)
|
||||
logWarn('[startup]', `local OCR skipped: ${formatStartupError(error)}`)
|
||||
logWarn('[startup]', `OCR service skipped: ${formatStartupError(error)}`)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -369,9 +369,9 @@ async function shutdown(signal) {
|
||||
}
|
||||
|
||||
try {
|
||||
await closeLocalOcrWorker()
|
||||
await closeOcrService()
|
||||
} catch (error) {
|
||||
logError('[shutdown]', 'failed to close local OCR worker', error)
|
||||
logError('[shutdown]', 'failed to close OCR service', error)
|
||||
}
|
||||
|
||||
if (!server.listening) {
|
||||
|
||||
@@ -23,11 +23,11 @@ export async function batchRecognizeTencentCaptcha(payload: OcrRequestPayload):
|
||||
return callOcrViaHttp('batch', payload, { timeoutMs: 180_000 })
|
||||
}
|
||||
|
||||
export async function warmupLocalOcrWorker(): Promise<void> {
|
||||
export async function warmupOcrService(): Promise<void> {
|
||||
await warmupOcrViaHttp()
|
||||
}
|
||||
|
||||
export async function closeLocalOcrWorker(): Promise<void> {
|
||||
export async function closeOcrService(): Promise<void> {
|
||||
// HTTP 模式无持久连接,无需关闭。
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ async function callOcrViaHttp(
|
||||
if (err instanceof Error && err.name === 'TimeoutError') {
|
||||
throw new Error(`OCR 请求超时(${timeoutMs}ms),请检查 OCR 服务状态`)
|
||||
}
|
||||
throw new Error(`OCR 服务不可用(${baseUrl}),请检查 ocr-worker 容器是否正常运行`)
|
||||
throw new Error(`OCR 服务不可用(${baseUrl}),请检查 OCR_BASE_URL 或外部 OCR 服务状态`)
|
||||
}
|
||||
|
||||
if (!response.ok) {
|
||||
@@ -93,7 +93,7 @@ async function warmupOcrViaHttp(): Promise<void> {
|
||||
if (err instanceof Error && err.name === 'TimeoutError') {
|
||||
throw new Error(`OCR 服务健康检查超时,请检查 ${baseUrl} 是否可访问`)
|
||||
}
|
||||
throw new Error(`OCR 服务不可用(${baseUrl}),请检查 ocr-worker 容器是否正常运行`)
|
||||
throw new Error(`OCR 服务不可用(${baseUrl}),请检查 OCR_BASE_URL 或外部 OCR 服务状态`)
|
||||
}
|
||||
if (!response.ok) {
|
||||
throw new Error(`OCR 服务健康检查失败:HTTP ${response.status}`)
|
||||
|
||||
Reference in New Issue
Block a user