fix: use in-memory startedAt for cron job log to survive DB restore
The auto-import wipes the database, destroying the cronJobLog record created at the start of the job. Now duration is calculated from a local variable instead of querying the DB, and if the record is gone a fresh log entry is created in the restored database. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
1edf73fdc8
commit
27d9132820
@@ -24,14 +24,22 @@ export const cronJobLogStorage = {
|
||||
|
||||
async completeJobLog(
|
||||
id: number,
|
||||
jobName: string,
|
||||
startedAt: Date,
|
||||
status: CronJobStatus,
|
||||
completedAt: Date,
|
||||
errorMessage?: string
|
||||
): Promise<CronJobLogEntry> {
|
||||
const durationMs = completedAt.getTime() - (await db.cronJobLog.findUniqueOrThrow({ where: { id } })).startedAt.getTime();
|
||||
return db.cronJobLog.update({
|
||||
where: { id },
|
||||
data: { status, completedAt, durationMs, errorMessage: errorMessage ?? null },
|
||||
const durationMs = completedAt.getTime() - startedAt.getTime();
|
||||
const existing = await db.cronJobLog.findUnique({ where: { id } });
|
||||
if (existing) {
|
||||
return db.cronJobLog.update({
|
||||
where: { id },
|
||||
data: { status, completedAt, durationMs, errorMessage: errorMessage ?? null },
|
||||
});
|
||||
}
|
||||
return db.cronJobLog.create({
|
||||
data: { jobName, status, startedAt, completedAt, durationMs, errorMessage: errorMessage ?? null },
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user