You need to enable JavaScript to run this app.
文档中心
AI 原生 BaaS 平台 Supabase 版

AI 原生 BaaS 平台 Supabase 版

复制全文
下载 pdf
插件
任务调度器扩展(pg_cron)
复制全文
下载 pdf
任务调度器扩展(pg_cron)
pg_cron 是一个基于 cron 的 PostgreSQL 任务调度器扩展插件,pg_cron 的语法与 cron 相同,可以直接从数据库执行 PostgreSQL 命令。​
定时计划使用标准的 cron 语法,其中 * 表示任意时间都运行,特定数字表示仅在这个时间时运行。​
​
┌───────────── 分钟:0~59​
│ ┌────────────── 小时:0~23​
│ │ ┌─────────────── 日期:1~31​
│ │ │ ┌──────────────── 月份:1~12​
│ │ │ │ ┌───────────────── 一周中的某一天:0~6,0 表示周日。​
│ │ │ │ │ ​
│ │ │ │ │​
│ │ │ │ │​
* * * * *​
​
插件的使用​
创建插件​
  1. 修改参数 shared_preload_libraries,新增 pg_cron 值。​
  1. 用高权限账户进入 postgres 库中执行以下命令创建插件。​
​
create extension pg_cron;​
​
删除插件​
执行以下命令删除插件。​
​
drop extension pg_cron CASCADE;​
​
使用插件​
创建定时任务​
pg_cron 提供了 cron.schedule() 和 cron.schedule_in_database() 两个函数创建定时任务。​
  • cron.schedule()​
  • cron.schedule() 函数的使用语法如下:​
  • ​
    cron.schedule ('<计划>', '<任务>');​
    cron.schedule ('<名称>', '<计划>', '<任务>');​
    ​
  • 使用示例如下:​
  • ​​​
​
  • cron.schedule_in_database() 函数​
  • 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 ('<任务id>', '<计划>', '<任务>', '<数据库>', '<用户>', '<是否生效>');​
​
使用示例:​
​​​
说明​
cron.alter_job() 函数不能指定用户。cron.alter_job ('<任务id>', '<计划>', '<任务>', '<数据库>', '<用户>', '<是否生效>')中'<用户>'只能填 NULL。​
取消定时任务​
取消定时任务的语法如下:​
​
cron.unschedule ('<任务id>');​
cron.unschedule ('<名称>');​
​
使用示例:​
​​​
授权普通用户使用插件​
授权普通用户使用插件的语法如下:​
​
grant USAGE on SCHEMA cron to other-user;​
​
使用示例:​
​​​
说明​
普通用户无法执行 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
这个页面对您有帮助吗?
有用
有用
无用
无用