之前版本仅支持 pg_sleep(seconds) 延迟执行函数, PostgreSQL 9.4 版本增加两个延迟执行函数,支持指定复杂的延迟。
pg_sleep_for(interval)
pg_sleep_until(timestamp with time zone)
- pg_sleep(seconds): 当前会话延迟执行指定秒,以秒为单位指定
- pg_sleep_for(interval): 支持更大的时间延迟,以 interval 形式指定。
- pg_sleep_until(timestamp with time zone): 指定时间被唤醒。
测试 Pg_sleep
1 |
[pg94@db1 ~]$ psql francs francs |
备注: 延迟执行 10 秒。
测试 Pg_sleep_for
1 |
francs=> select pg_sleep_for('2 min'); |
备注:延迟执行 2 分钟钟。
测试 Pg_sleep_until
1 |
francs=> select now(); |
备注:延迟执行到指定时间,用法非常简单。
查看 Pg_stat_activity
1 |
postgres=# select pid, datname,usename,query_start,query,state,waiting from pg_stat_activity where state='active' and pid <> pg_backend_pid() order by query; |
备注: 在之前函数还未执行完成的时候查询 pg_stat_activity,说明函数处于运行状态。
参考
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/238066.html