mirror of
https://github.com/jcreek/SvelteKitSaasBoilerplate.git
synced 2026-07-12 18:43:50 +00:00
refactor(#74): Enhance function robustness and configurability
This commit is contained in:
@@ -6,16 +6,29 @@ 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 void LANGUAGE plpgsql AS $$
|
||||
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() - INTERVAL '24 hours';
|
||||
WHERE requested_at < NOW() - expiry_interval
|
||||
RETURNING COUNT(*) INTO deletion_count;
|
||||
RAISE NOTICE 'Deleted % expired token(s)', deletion_count;
|
||||
RETURN deletion_count;
|
||||
END;
|
||||
$$;
|
||||
|
||||
-- Schedule the function to run every hour
|
||||
SELECT cron.schedule(
|
||||
'delete_expired_tokens',
|
||||
'0 * * * *',
|
||||
'CALL delete_expired_tokens()'
|
||||
);
|
||||
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