From 149421740f5780c0089dbce615b9a5d19f1a74eb Mon Sep 17 00:00:00 2001 From: nk Date: Wed, 3 Jun 2026 13:43:19 +0300 Subject: [PATCH] =?UTF-8?q?perf(enrich):=20=D1=83=D1=81=D0=BA=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=B1=D1=8D=D0=BA=D0=B0=D1=84=D0=B8=D0=BB?= =?UTF-8?q?=D0=BB=20(=D0=B1=D0=B0=D1=82=D1=87=20240=20=D0=BA=D0=B0=D0=B6?= =?UTF-8?q?=D0=B4=D1=8B=D0=B5=205=20=D0=BC=D0=B8=D0=BD,=20~50=20=D1=82?= =?UTF-8?q?=D1=80=D0=B5=D0=BA=D0=BE=D0=B2/=D0=BC=D0=B8=D0=BD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В базе ~22к треков — прежние 30/10мин слишком медленно. Батч подобран под троттлинг очереди (~50 запросов/мин, под лимитом Discogs 60/мин), пропускаем тик если прошлый батч ещё не дожёван. Co-Authored-By: Claude Opus 4.8 --- src/enrich/enrichment.service.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/enrich/enrichment.service.ts b/src/enrich/enrichment.service.ts index 573ebe3..78a8a1c 100644 --- a/src/enrich/enrichment.service.ts +++ b/src/enrich/enrichment.service.ts @@ -32,15 +32,18 @@ export class EnrichmentService { void this.drain(); } - // Периодически добираем не обогащённые треки (в т.ч. накопленные ранее) - @Cron(CronExpression.EVERY_10_MINUTES) + // Периодически добираем не обогащённые треки (в т.ч. накопленные ранее). + // Батч ≈ объёму, который очередь успевает прожевать за интервал при троттлинге + // ~50 запросов/мин (под лимитом Discogs 60/мин) — конвейер идёт почти непрерывно. + @Cron(CronExpression.EVERY_5_MINUTES) async backfill(): Promise { if (!this.discogs.enabled) return; // без токена смысла нет — не крутим вхолостую + if (this.running || this.queue.length > 0) return; // ещё жуём прошлый батч const pending = await this.prisma.track.findMany({ where: { enrichStatus: 'pending' }, select: { id: true }, orderBy: { firstSeenAt: 'desc' }, - take: 30, + take: 240, }); for (const t of pending) this.enqueue(t.id); }