You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL存储过程运行超5分钟无法返回的问题求助

PostgreSQL存储过程长休眠后无法返回客户端问题

我创建了一个简单的PostgreSQL存储过程,用于根据传入参数休眠指定分钟数,代码如下:

create procedure sleep_test(delay_minutes numeric)
    language plpgsql
as
$$
BEGIN
    RAISE NOTICE 'Starting procedure. Sleeping for % minutes...', delay_minutes;
    PERFORM pg_sleep(delay_minutes * 60); -- Function call is in seconds
    RAISE NOTICE 'Finished sleeping.';

END;
$$;

测试情况:4分钟休眠

执行语句:

call sleep_test(4)

在工作表中运行该存储过程4分钟时一切正常,过程在pg_stat_activity中的状态为active,运行4分钟后返回至调用工作表。

测试情况:5分钟及以上休眠

执行语句:

call sleep_test(5)

但当运行时长为5分钟及以上时,过程会运行5分钟(pg_stat_activity中状态为active),之后状态变为idle,且不会返回至调用工作表,从工作表视角来看,该过程似乎一直在运行。

数据库配置(供参考)

  • server_version: 12.22
  • statement_timeout: 0
  • idle_in_transaction_session_timeout: 1d

测试所用客户端(均出现相同问题)

  • Datagrip 2025.1 查询控制台
  • 使用psycopg2 2.9.9的Python 3.9脚本

数据库服务器信息

这是一个AWS Postgres RDS数据库,暂不清楚如何在AWS中查看具体的操作系统及版本。

内容的提问来源于stack exchange,提问作者Rumtis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 07:43:16