


























@@ -321,6 +321,7 @@ export function loadCronStoreSync(storePath: string): CronStoreFile {
321321322322type SaveCronStoreOptions = {
323323skipBackup?: boolean;
324+stateOnly?: boolean;
324325};
325326326327async function setSecureFileMode(filePath: string): Promise<void> {
@@ -361,20 +362,25 @@ export async function saveCronStore(
361362store: CronStoreFile,
362363opts?: SaveCronStoreOptions,
363364) {
365+const stateOnly = opts?.stateOnly === true;
364366const configJson = JSON.stringify(stripRuntimeOnlyCronFields(store), null, 2);
365367const stateFile = extractStateFile(store);
366368const stateJson = JSON.stringify(stateFile, null, 2);
367369368370const statePath = resolveStatePath(storePath);
369371const cache = serializedStoreCache.get(storePath);
370372371-const configChanged = cache?.configJson !== configJson;
373+const configChanged = !stateOnly && cache?.configJson !== configJson;
372374const stateChanged = cache?.stateJson !== stateJson;
373375const migrating = cache?.needsSplitMigration === true;
374-const configNeedsWrite = await serializedFileNeedsWrite(storePath, configJson, configChanged);
376+const configNeedsWrite = stateOnly
377+ ? false
378+ : await serializedFileNeedsWrite(storePath, configJson, configChanged);
375379const stateNeedsWrite = await serializedFileNeedsWrite(statePath, stateJson, stateChanged);
376380377-if (!configNeedsWrite && !stateNeedsWrite && !migrating) {
381+if (
382+stateOnly ? !stateNeedsWrite && !migrating : !configNeedsWrite && !stateNeedsWrite && !migrating
383+) {
378384return;
379385}
380386@@ -386,7 +392,7 @@ export async function saveCronStore(
386392updatedCache.stateJson = stateJson;
387393}
388394389-if (configNeedsWrite || migrating) {
395+if (!stateOnly && (configNeedsWrite || migrating)) {
390396// Determine backup need: only when config actually changed (not migration-only).
391397const skipBackup = opts?.skipBackup === true || !configChanged;
392398if (!skipBackup) {
@@ -401,7 +407,7 @@ export async function saveCronStore(
401407await atomicWrite(storePath, configJson);
402408updatedCache.configJson = configJson;
403409}
404-updatedCache.needsSplitMigration = false;
410+updatedCache.needsSplitMigration = stateOnly && migrating;
405411}
406412407413const RENAME_MAX_RETRIES = 3;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。