refresh materialized view periodically postgres

the best way is to execute periodically a script that does the task:

the script is:

#!/bin/sh
psql -U user_name -d database_instance_name -c 'refresh materialized view view_name'

and add an entry in the crontab like:

@hourly  /full_path/script_name.sh

Also pg_cron extension can do job for Linux installation. Here is a example that i use, refreshing every 5 minute;

INSERT INTO cron.job (schedule, command, nodename, nodeport, database, username)
VALUES ('*/5 * * * *', 'REFRESH MATERIALIZED VIEW public.mv_anyquery', 
'127.0.0.1', 5432, 'geodb', 'postgres');

nodename(127.0.0.1) may be necessary trust authentication in pg_hba.conf.