supabase자체적으로 cron을 지원해준다. 이 기능으로 Edge Functions으로 생성한 함수를 자동화 해줄 수 있다.
pg_cron Extension은 데이터베이스 내부에서 실행되는 PostgreSQL의 단순한 cron 기반 작업 스케줄러이다.
프로젝트 대시보드>database>extentions
여기서 PG_CRON과 PG_NET을 찾아서 활성화해준다.
프로젝트 대시보드>SQL Edior
New query를 클릭해서 생성해준다.
select
cron.schedule(
'invoke-function-every-minute',
'* * * * *', -- every minute
$$
select
net.http_post(
url:='https://project-ref.functions.supabase.co/function-name',
headers:='{"Content-Type": "application/json", "Authorization": "Bearer YOUR_ANON_KEY"}'::jsonb,
body:=concat('{"time": "', now(), '"}')::jsonb
) as request_id;
$$
);
cron 일정 표현식에서 원하는 스케줄을 복사해온다.
url은 사용할 Edge Function의 url을 적어준다.
함수를 모두 적은 후 Run을 누른다.
[참고]