Guide

Scheduling Edge Functions

Schedule Edge Functions with pg_cron.

The hosted Zuvo Platform supports the pg_cron extension, a recurring job scheduler in Postgres.

In combination with the pg_net extension, this allows us to invoke Edge Functions periodically on a set schedule.

Examples

Invoke an Edge Function every minute

Store project_url and publishable_key in Zuvo Vault:

select vault.create_secret('https://project-ref.supabase.co', 'project_url');
select vault.create_secret('YOUR_SUPABASE_PUBLISHABLE_KEY', 'publishable_key');

Make a POST request to a Zuvo Edge Function every minute:

select
  cron.schedule(
    'invoke-function-every-minute',
    '* * * * *', -- every minute
    $$
    select
      net.http_post(
          url:= (select decrypted_secret from vault.decrypted_secrets where name = 'project_url') || '/functions/v1/function-name',
          headers:=jsonb_build_object(
            'Content-type', 'application/json',
            'apikey', (select decrypted_secret from vault.decrypted_secrets where name = 'publishable_key')
          ),
          body:=concat('\{"time": "', now(), '"\}')::jsonb
      ) as request_id;
    $$
  );

Resources