20250612115833-f75243bb-0f47-4c5e-b7f8-e919171dff8d.sql 1.1 KB

123456789101112131415161718192021222324252627282930
  1. -- Enable pg_cron and pg_net extensions for scheduled tasks
  2. CREATE EXTENSION IF NOT EXISTS pg_cron;
  3. CREATE EXTENSION IF NOT EXISTS pg_net;
  4. -- Create a cron job that runs every 10 minutes to fetch RSS content for active feeds
  5. SELECT cron.schedule(
  6. 'fetch-active-feeds',
  7. '*/10 * * * *', -- every 10 minutes
  8. $$
  9. DECLARE
  10. feed_record RECORD;
  11. BEGIN
  12. -- Loop through all active feeds
  13. FOR feed_record IN
  14. SELECT id, url FROM public.feeds WHERE status = 'active'
  15. LOOP
  16. -- Call the fetch-rss function for each active feed
  17. PERFORM net.http_post(
  18. url := 'https://wftyukugedtojizgatwj.supabase.co/functions/v1/fetch-rss',
  19. headers := '{"Content-Type": "application/json", "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6IndmdHl1a3VnZWR0b2ppemdhdHdqIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDkzNjIxNTEsImV4cCI6MjA2NDkzODE1MX0.KflrS6WiGksws1nO8NDm5i_Dav4u2JDSuEYtEnmKCRE"}'::jsonb,
  20. body := json_build_object(
  21. 'feedId', feed_record.id,
  22. 'feedUrl', feed_record.url
  23. )::jsonb
  24. );
  25. END LOOP;
  26. END;
  27. $$
  28. );