- 文档首页
AI 原生 BaaS 平台 Supabase 版
用户指南
PostgreSQL 引擎用户指南
插件
任务调度器扩展(pg_cron)
任务调度器扩展(pg_cron)
pg_cron 是一个基于 cron 的 PostgreSQL 任务调度器扩展插件,pg_cron 的语法与 cron 相同,可以直接从数据库执行 PostgreSQL 命令。
定时计划使用标准的 cron 语法,其中 * 表示任意时间都运行,特定数字表示仅在这个时间时运行。
插件的使用
创建插件
- 修改参数 shared_preload_libraries,新增 pg_cron 值。
- 用高权限账户进入 postgres 库中执行以下命令创建插件。
删除插件
执行以下命令删除插件。
使用插件
创建定时任务
pg_cron 提供了 cron.schedule() 和 cron.schedule_in_database() 两个函数创建定时任务。
- cron.schedule() 函数的使用语法如下:
-
- cron.schedule_in_database() 函数
- cron.schedule_in_database() 函数的使用语法如下:
-
说明
- cron.schedule_in_database() 函数不能指定用户。cron.schedule_in_database ('<名称>', '<计划>', '<任务>', '<数据库>', '<用户>', '<是否生效>')中'<用户>'只能填 NULL。
- AI 原生数据库管理平台不提供 PostgreSQL 的“超级用户”给用户使用。因此请不要尝试使用 PostgreSQL 的“超级用户”使用此插件,否则将会报错。
查看定时任务
在设置了定时任务后,可通过 cron.job 表查看已经配置了的定时任务。
同时可通过 cron.job_run_details 表查看任务状态以及执行情况。
修改定时任务
修改定时任务的语法如下:
使用示例:
说明
cron.alter_job() 函数不能指定用户。cron.alter_job ('<任务id>', '<计划>', '<任务>', '<数据库>', '<用户>', '<是否生效>')中'<用户>'只能填 NULL。
取消定时任务
取消定时任务的语法如下:
使用示例:
授权普通用户使用插件的语法如下:
使用示例:
说明
普通用户无法执行 cron.schedule_in_database() 和 cron.alter_job() 函数。
相关参数
在使用 pg_cron 插件时,需要使用以下两个参数:
- shared_preload_libraries:在创建 pg_cron 插件前,需要修改该参数添加 pg_cron 值。
- cron.log_run:用于开启或关闭将运行的所有任务记录到 cron.job_run_details 表中的功能, 该功能默认开启。该参数的可选值为 on 和 off,默认值为 on。
最近更新时间:2026.07.03 18:56:11