执行Postgres声明或过程而无需等待返回

时间:2015-05-19 23:40:18

标签: sql postgresql stored-procedures sql-function

我想在完成一些INSERT之后调用一些清理过程,并且清理需要很长时间。我的sql客户端对超时的容忍度很小,所以我希望在命令发出后立即返回。

我尝试过触发器 - INSERT触发存储过程进行清理。问题是现在INSERT必须等待清理完成才能返回。

我试过打电话给代理人'函数然后调用实际的清理函数,但似乎Postgres中的函数调用堆栈与其他语言没有什么不同。客户端仍在等待清理。

这种情况下的最佳做法是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

您必须使用外部程序才能执行此操作。 PostgreSQL本身不允许你在后台运行东西。您可以使用pgAgent或通过创建自己运行的程序来处理此问题。您需要向该程序发送某种通知,您可以使用该通知。插入触发器的表,或者listen / notify。