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); }