pg_sleep_until() 是一个系统函数,用于让连接的后端休眠直到指定的时间。
pg_sleep_until() 已添加到 PostgreSQL 9.4 中。
用法
pg_sleep_until ( timestamp with time zone ) → returns NULL
该 文档 提到了以下注意事项:
- 最小休眠间隔是平台相关的,通常为
0.01秒。 - 休眠延迟将始终至少是指定的值,但在某些情况下可能会更长。
变更历史
- PostgreSQL 9.4
- 已添加(提交 760c770f)。
示例
pg_sleep_until() 的基本用法
postgres=# SELECT clock_timestamp();
clock_timestamp
-------------------------------
2021-02-02 13:21:34.778857+01
(1 row)
Time: 0.291 ms
postgres=# SELECT pg_sleep_until('2021-02-02 13:22');
pg_sleep_until
----------------
(1 row)
Time: 14710.314 ms (00:14.710)
如果指定了过去的时间点,则不会执行休眠。
postgres=# SELECT pg_sleep_until('yesterday');
pg_sleep_until
----------------
(1 row)
Time: 0.310 ms
参考资料
- PostgreSQL 文档: 延迟执行
有用链接
- SELECT pg_sleep_until('#800Monies'); - 2020 年 1 月 Andreas 'ads' Scherbaum 的博文
