配置改为数据库存储
将运行时 JSON 配置迁入 app_config_entries,启动时从文件导入并删除源文件。
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
import path from 'node:path'
|
||||
|
||||
import { APP_CONFIG_KEYS } from '../../config/app-config-keys.js'
|
||||
import { PROJECT_ROOT } from '../../config/runtime.js'
|
||||
import { readJsonFile, writeJsonFile } from '../../utils/json-file-store.js'
|
||||
import {
|
||||
readAppConfigEntry,
|
||||
saveAppConfigEntry,
|
||||
} from '../config/app-config-store.js'
|
||||
|
||||
const SCHEDULED_JOBS_FILE_PATH = path.join(PROJECT_ROOT, 'data', 'scheduled-jobs.json')
|
||||
const CLOUDTENTACLES_HEALTH_JOB_ID = 'cloudtentacles-health'
|
||||
@@ -13,11 +17,21 @@ export function getScheduledJobsFilePath() {
|
||||
}
|
||||
|
||||
export function getScheduledJobsConfig() {
|
||||
return loadScheduledJobsConfigFromFile()
|
||||
return readAppConfigEntry({
|
||||
configKey: APP_CONFIG_KEYS.scheduledJobs,
|
||||
legacyFilePath: SCHEDULED_JOBS_FILE_PATH,
|
||||
fallback: createDefaultScheduledJobsConfig,
|
||||
normalize: normalizeScheduledJobsConfig,
|
||||
})
|
||||
}
|
||||
|
||||
export function saveScheduledJobsConfig(rawValue: unknown) {
|
||||
return writeJsonFile(SCHEDULED_JOBS_FILE_PATH, rawValue, normalizeScheduledJobsConfig)
|
||||
return saveAppConfigEntry({
|
||||
configKey: APP_CONFIG_KEYS.scheduledJobs,
|
||||
legacyFilePath: SCHEDULED_JOBS_FILE_PATH,
|
||||
value: rawValue,
|
||||
normalize: normalizeScheduledJobsConfig,
|
||||
})
|
||||
}
|
||||
|
||||
export function getCloudtentaclesHealthJob(config: JsonObject = getScheduledJobsConfig()) {
|
||||
@@ -26,14 +40,6 @@ export function getCloudtentaclesHealthJob(config: JsonObject = getScheduledJobs
|
||||
|| createDefaultCloudtentaclesHealthJob()
|
||||
}
|
||||
|
||||
function loadScheduledJobsConfigFromFile() {
|
||||
return readJsonFile(
|
||||
SCHEDULED_JOBS_FILE_PATH,
|
||||
createDefaultScheduledJobsConfig,
|
||||
normalizeScheduledJobsConfig,
|
||||
)
|
||||
}
|
||||
|
||||
export function normalizeScheduledJobsConfig(rawValue: unknown) {
|
||||
const source = isPlainObject(rawValue) ? rawValue : {}
|
||||
const rawJobs = Array.isArray(source.jobs) ? source.jobs : []
|
||||
|
||||
Reference in New Issue
Block a user