注册一个操作,以便由自动化框架进行调度。有关调度的更多信息,包括示例操作,请参阅操作部分

名称类型描述
procREGPROC要注册为作业的函数或过程的名称
schedule_intervalINTERVAL此作业执行之间的时间间隔。默认为 24 小时
名称类型描述
configJSONB特定于作业的配置,在运行时传递给函数
initial_startTIMESTAMPTZ作业首次运行的时间。在固定计划的情况下,这也充当作业执行对齐的起点。如果省略,则在固定计划的情况下,当前时间用作起点。
scheduledBOOLEAN设置为 FALSE 以将此作业排除在调度之外。默认为 TRUE
check_configREGPROC一个接受单个参数的函数,即 JSONB config 结构。如果配置无效,则该函数应引发错误,否则不返回任何内容。可用于在添加作业时验证配置。仅允许函数,不允许过程作为 check_config 的值。
fixed_scheduleBOOLEAN如果您希望作业的下一次启动时间确定为其上次完成时间加上计划间隔,请设置为 FALSE。如果您希望作业的下一次启动时间在上次启动后 schedule_interval 开始,请设置为 TRUE。默认为 TRUE
timezoneTEXT有效的时区。如果 fixed_schedule 为 TRUE,则后续作业执行将与其初始启动时间对齐。但是,夏令时 (DST) 更改可能会使这种对齐发生偏移。如果您想缓解此问题,请设置为有效的时区。默认为 NULL
类型描述
job_idINTEGERTimescaleDB 后台作业 ID

注册 user_defined_action 过程每小时运行一次

CREATE OR REPLACE PROCEDURE user_defined_action(job_id int, config jsonb) LANGUAGE PLPGSQL AS
$$
BEGIN
RAISE NOTICE 'Executing action % with config %', job_id, config;
END
$$;
SELECT add_job('user_defined_action','1h');
SELECT add_job('user_defined_action','1h', fixed_schedule => false);

注册 user_defined_action 过程在每个星期日午夜运行。提供的 initial_start 必须满足这些要求,因此它必须是星期日午夜

-- December 4, 2022 is a Sunday
SELECT add_job('user_defined_action','1 week', initial_start => '2022-12-04 00:00:00+00'::timestamptz);
-- if subject to DST
SELECT add_job('user_defined_action','1 week', initial_start => '2022-12-04 00:00:00+00'::timestamptz, timezone => 'Europe/Berlin');

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页