DuckDB HTTP Cronjob 扩展
维护者: lmangani
安装和加载
INSTALL cronjob FROM community;
LOAD cronjob;
示例
-- Every 15 seconds during hours 1-4
SELECT cron('SELECT now()', '*/15 * 1-4 * * *');
-- Every 2 hours (at minute 0, second 0) during hours 1-4
SELECT cron('SELECT version()', '0 0 */2 1-4 * *');
-- Every 5 minute (wipe old data)
SELECT cron('DELETE FROM somewhere WHERE ts < NOW() - INTERVAL ''1 hour''', '* /5 * * * *');
-- Inspect running Jobs
SELECT * FROM cron_jobs();
┌─────────┬──────────────────┬────────────────┬──────────────────────────┬─────────┬──────────────────────────┬─────────────┐
│ job_id │ query │ schedule │ next_run │ status │ last_run │ last_result │
│ varchar │ varchar │ varchar │ varchar │ varchar │ varchar │ varchar │
├─────────┼──────────────────┼────────────────┼──────────────────────────┼─────────┼──────────────────────────┼─────────────┤
│ task_0 │ SELECT version() │ */15 * * * * * │ Fri Nov 15 20:44:30 2024 │ Active │ Fri Nov 15 20:44:15 2024 │ Success │
└─────────┴──────────────────┴────────────────┴──────────────────────────┴─────────┴──────────────────────────┴─────────────┘
-- Inspect running Jobs
SELECT cron_delete('task_0');
-- Supported Patterns
┌───────────── second (0 - 59)
│ ┌───────────── minute (0 - 59)
│ │ ┌───────────── hour (0 - 23)
│ │ │ ┌───────────── day of month (1 - 31)
│ │ │ │ ┌───────────── month (1 - 12)
│ │ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday)
│ │ │ │ │ │
* * * * * *
关于 cronjob
此扩展是实验性的,可能不稳定。请勿在生产环境中使用。
新增函数
function_name (函数名) | 函数类型 | description (描述) | comment (注释) | examples (示例) |
---|---|---|---|---|
cron | 标量 | NULL | NULL | |
cron_delete | 标量 | NULL | NULL | |
cron_jobs | table (表) | NULL | NULL |