我想将Cloud SQL与PostgreSQL一起使用,并使用内部类似cron的工具。在扩展名列表中,我找不到类似的内容。
你知道有什么解决方案/替代方案不包括有一个额外的计算引擎实例,我们可以从中进行调用吗?
您不能在Cloud SQL中内部运行cron,因为它是完全管理的,您只能访问数据库本身。
变通办法
如果你需要运行这个插入并选择每分钟,那么你可以使用谷歌的任务队列向应用引擎服务发送请求,该服务将完成所有这些。
cron:
- description: "make some select/insert"
url: /tasks/populate
schedule: every 1 mins
target: populate_postgres
您每天有28个免费实例小时可用于应用程序引擎实例。
由于2021年11月19日添加了pg_cron扩展支持,您可以在云SQL中内部运行cron。
pg_cron
-提供一个基于cron的作业调度程序。此扩展使cron语法能够直接从数据库调度PostgreSQL命令。有关扩展的更多信息,请参阅pg_cron部分。云SQL for PostgreSQL使用版本10(或更高版本(。
gcloud sql instances patch INSTANCE_NAME --database-flags=cloudsql.enable_pg_cron=on
CREATE EXTENSION pg_cron;
-- Delete old data on Saturday at 3:30am (GMT)
SELECT cron.schedule(
'delete outdated events',
'30 3 * * 6',
$$ DELETE FROM events WHERE event_time < now() - '1 week'::interval $$
);