mirror of
https://github.com/jcreek/SvelteKitSaasBoilerplate.git
synced 2026-07-15 20:13:50 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 77254c85fd | |||
| 8788b90271 |
@@ -0,0 +1,34 @@
|
||||
-- Enable the "pg_cron" extension
|
||||
create extension pg_cron with schema pg_catalog;
|
||||
|
||||
grant usage on schema cron to postgres;
|
||||
grant all privileges on all tables in schema cron to postgres;
|
||||
|
||||
-- Create a function to delete expired tokens
|
||||
CREATE OR REPLACE FUNCTION delete_expired_tokens()
|
||||
RETURNS integer LANGUAGE plpgsql AS $$
|
||||
DECLARE
|
||||
deletion_count integer;
|
||||
expiry_interval interval := '24 hours'::interval;
|
||||
BEGIN
|
||||
DELETE FROM account_deletion_requests
|
||||
WHERE requested_at < NOW() - expiry_interval
|
||||
RETURNING COUNT(*) INTO deletion_count;
|
||||
RAISE NOTICE 'Deleted % expired token(s)', deletion_count;
|
||||
RETURN deletion_count;
|
||||
END;
|
||||
$$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
-- Schedule the function to run every hour
|
||||
PERFORM cron.schedule(
|
||||
'delete_expired_tokens',
|
||||
'0 * * * *',
|
||||
'SELECT delete_expired_tokens()'
|
||||
);
|
||||
EXCEPTION WHEN OTHERS THEN
|
||||
RAISE NOTICE 'Failed to schedule token cleanup: %', SQLERRM;
|
||||
RAISE;
|
||||
END;
|
||||
$$;
|
||||
Reference in New Issue
Block a user