Postgresql:在后台触发

Postgresql:在后台触发,postgresql,triggers,Postgresql,Triggers,我需要让触发器在字段更新后运行或在后台运行。因为现在只要触发了触发器,UI就会被阻塞,直到触发器本身中的过程被执行为止。 无论如何,要以这样一种方式进行触发,即字段一更新,UI就不会阻塞 我试过: CREATE CONSTRAINT TRIGGER property_created_simple_prod_trigger AFTER UPDATE ON properties DEFERRABLE INITIALLY DEFERRED FOR EACH ROW EXECUTE P

我需要让触发器在字段更新后运行或在后台运行。因为现在只要触发了触发器,UI就会被阻塞,直到触发器本身中的过程被执行为止。 无论如何,要以这样一种方式进行触发,即字段一更新,UI就不会阻塞

我试过:

CREATE CONSTRAINT TRIGGER property_created_simple_prod_trigger
    AFTER UPDATE ON properties DEFERRABLE INITIALLY DEFERRED
    FOR EACH ROW 
EXECUTE PROCEDURE simple_production_materialized_view_procedure_trigger();

但不幸的是,什么都不起作用。

PostgreSQL没有后台过程/触发器,所以您不能直接这样做


我建议我们让触发器发送一个
通知
,让您的应用程序
侦听。让应用程序的
LISTEN
ing线程成为一个单独的连接,由一个单独的线程管理,在收到通知时进行后台处理。

运行将更新调用到单独线程中的任何方法。请使用命令和结果列表更新问题,评论你得到了什么,你想得到什么,而不是背景工作者呢@当然,如果他们想实现自己的扩展,这是一个选项。但是没有什么可以做的。虽然有建议()和扩展()以及
pg_background
可能是一种选择,但实际上,我会选择基于侦听/通知的方法,这就是它的用途。我已经编写了bgworkers,对于一个不太了解postgres代码的人来说,编写一个异步触发器辅助程序并不是一件有趣的事情。他们需要知道IPC机制和各种各样的东西。