Sql 在不等待返回的情况下执行Postgres语句或过程

Sql 在不等待返回的情况下执行Postgres语句或过程,sql,postgresql,stored-procedures,sql-function,Sql,Postgresql,Stored Procedures,Sql Function,我想在插入后调用一些清理过程,而清理需要很长时间。我的sql客户机对超时的容忍度很低,因此我希望在发出命令后立即返回 我已经尝试过触发器-INSERT触发存储过程来进行清理。问题是,现在插入必须等待清理完成才能返回 我尝试调用“代理”函数,然后调用实际的清理函数,但Postgres中的函数调用堆栈似乎与其他语言中的函数调用堆栈没有什么不同。客户端仍在等待清理 这种情况下的最佳实践是什么?谢谢 您必须使用外部程序来执行此操作。PostgreSQL本身不允许您在后台运行。您可以通过创建自己的持续运行

我想在插入后调用一些清理过程,而清理需要很长时间。我的sql客户机对超时的容忍度很低,因此我希望在发出命令后立即返回

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

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


这种情况下的最佳实践是什么?谢谢

您必须使用外部程序来执行此操作。PostgreSQL本身不允许您在后台运行。您可以通过创建自己的持续运行的程序来处理此问题。您需要向程序发送某种通知,例如,可以使用插入时带有触发器的表,或侦听/通知。

使用侦听和通知在提交后从帮助程序守护程序以任务形式运行清理。