向数据库添加用户自定义操作是一个两步过程
您的函数需要包含在 CREATE 语句中。您也可以使用 CREATE OR REPLACE,尽管不建议这样做。此语句还允许您在此语句中定义命令的语言。用户自定义操作可以使用您选择的任何语言编写。本指南使用 SQL 过程语言 PL/pgSQL。
此示例定义了一个简单的过程,用于引发通知
CREATE PROCEDURE user_defined_action(job_id INT, config JSONB)LANGUAGE PLPGSQL AS$$BEGINRAISE NOTICE 'Executing job % with config %', job_id, config;END$$;
要使作业调度器运行您的操作,您需要注册它。使用 add_job 函数。提供您操作的名称、您希望它运行的计划以及配置的内容。如果您的作业不需要参数,请使用 NULL 配置。
例如
SELECT add_job('user_defined_action', '1h', config => '{"hypertable":"metrics"}');
add_job 调用返回一个 job_id。它将 job_id 和 config 存储在 TimescaleDB 目录中。
该操作按照您设置的计划运行。当您通过使用 job_id 调用 run_job 手动启动它时,它也会运行。运行时,job_id 和 config 将作为参数传递给过程。
要列出所有当前注册的作业,请查询 timescaledb_information.jobs
SELECT * FROM timescaledb_information.jobs;
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。