From c2ddb24a0263f32503e8179370e4f40eeaf6072e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20M=C3=B3ricz?= Date: Sun, 26 Oct 2025 19:50:34 +0100 Subject: [PATCH] fix(nuq): further indexes --- apps/nuq-postgres/nuq.sql | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/nuq-postgres/nuq.sql b/apps/nuq-postgres/nuq.sql index 61af944bd..76fd929bb 100644 --- a/apps/nuq-postgres/nuq.sql +++ b/apps/nuq-postgres/nuq.sql @@ -54,6 +54,9 @@ CREATE INDEX IF NOT EXISTS nuq_queue_scrape_group_mode_status_idx ON nuq.queue_s -- For getCrawlJobsForListing: query by group_id, status='completed', data->>'mode', ordered by finished_at, created_at CREATE INDEX IF NOT EXISTS nuq_queue_scrape_group_completed_listing_idx ON nuq.queue_scrape (group_id, finished_at ASC, created_at ASC) WHERE (status = 'completed'::nuq.job_status AND (data->>'mode') = 'single_urls'); +-- For group finish cron +CREATE INDEX IF NOT EXISTS idx_queue_scrape_group_status ON nuq.queue_scrape (group_id, status) WHERE status IN ('active', 'queued'); + CREATE TABLE IF NOT EXISTS nuq.queue_scrape_backlog ( id uuid NOT NULL DEFAULT gen_random_uuid(), data jsonb, @@ -174,8 +177,8 @@ SELECT cron.schedule('nuq_group_crawl_clean', '*/5 * * * *', $$ WITH cleaned_groups AS ( DELETE FROM nuq.group_crawl WHERE nuq.group_crawl.status = 'completed'::nuq.group_status - AND nuq.group_crawl.expires_at < now(); - RETURNING *; + AND nuq.group_crawl.expires_at < now() + RETURNING * ), cleaned_jobs_queue_scrape AS ( DELETE FROM nuq.queue_scrape WHERE nuq.queue_scrape.group_id IN (SELECT id FROM cleaned_groups) @@ -185,5 +188,6 @@ SELECT cron.schedule('nuq_group_crawl_clean', '*/5 * * * *', $$ ), cleaned_jobs_crawl_finished AS ( DELETE FROM nuq.queue_crawl_finished WHERE nuq.queue_crawl_finished.group_id IN (SELECT id FROM cleaned_groups) - ); + ) + SELECT 1; $$);