refactor(#74): Enhance function robustness and configurability

This commit is contained in:
Josh Creek
2024-11-12 22:26:05 +00:00
parent 8788b90271
commit 77254c85fd
@@ -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;
$$;