Парсер: часы ночной паузы в настройках админки
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d32f37457b
commit
5470036a69
9 files changed
+95
-30
No files matched your search
@@ -25,9 +25,9 @@ const ago = (from: Date, now: Date) => {
|
||||
|
||||
/** Что не так с парсером, или null, если всё в порядке. */
|
||||
export async function parserProblem(db: Db, now = new Date()): Promise<string | null> {
|
||||
// Ночью парсер спит по расписанию — это не простой.
|
||||
if (isQuietHours(now)) return null;
|
||||
const parser = await loadParserSettings(db);
|
||||
// В ночную паузу парсер спит по расписанию — это не простой.
|
||||
if (isQuietHours(parser, now)) return null;
|
||||
const stall = STALL_MINUTES * 60_000;
|
||||
if (!parser.enabled) {
|
||||
const [row] = await db.select({ at: settings.updatedAt }).from(settings).where(eq(settings.key, 'parser'));
|
||||
@@ -38,7 +38,7 @@ export async function parserProblem(db: Db, now = new Date()): Promise<string |
|
||||
const [last] = await db.select({ at: parserRuns.startedAt }).from(parserRuns).orderBy(desc(parserRuns.id)).limit(1);
|
||||
if (!last) return null;
|
||||
// Простой считается с конца ночной паузы: последний проход был вечером, а утром парсер только проснулся.
|
||||
const since = new Date(Math.max(last.at.getTime(), lastQuietEnd(now).getTime()));
|
||||
const since = new Date(Math.max(last.at.getTime(), lastQuietEnd(parser, now)?.getTime() ?? 0));
|
||||
return now.getTime() - since.getTime() >= stall ? `не запускался ${ago(last.at, now)}` : null;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user